<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/">
	<channel>
		<title>Author at Infinum</title>
		<atom:link href="https://infinum.com/blog/author/dona-pejnovic/feed/" rel="self" type="application/rss+xml" />
		<link></link>
		<description>Building digital products</description>
		<lastBuildDate>Wed, 15 Apr 2026 14:51:06 +0000</lastBuildDate>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>

					<item>
				<image>
					<url>23665https://infinum.com/uploads/2022/04/2600x1560_Creating-Azure-Functions.webp</url>
				</image>
				<title>Creating Azure Functions with .NET 6 in Isolated Process</title>
				<link>https://infinum.com/blog/creating-azure-functions-with-net-6-in-isolated-process/</link>
				<pubDate>Thu, 14 Apr 2022 09:52:32 +0000</pubDate>
				<dc:creator>Dona Pejnović</dc:creator>
				<guid isPermaLink="false">https://infinum.com/?p=23665</guid>
				<description>
					<![CDATA[<p>Azure Functions provide a sleek and powerful way of creating lightweight applications. They are versatile and can be run on many frameworks.</p>
<p>The post <a href="https://infinum.com/blog/creating-azure-functions-with-net-6-in-isolated-process/">Creating Azure Functions with .NET 6 in Isolated Process</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</description>
				<content:encoded>
					<![CDATA[<div
	class="wrapper"
	data-id="es-281"
	 data-animation-target='inner-items'>
		
			<div class="wrapper__inner">
			<div class="block-blog-content js-block-blog-content">
	
<div class="block-blog-content-sidebar" data-id="es-92">
	</div>

<div class="block-blog-content-main">
	
<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-95"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-93">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-94'
	>
	Azure Functions enables us to run small chunks of code in the cloud and pay on demand, only when the code runs. Running small solutions can even be free. The development environment is flexible, you can develop your functions directly through the <a href="https://portal.azure.com/">Azure Portal</a> or locally in Visual Studio. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-98"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-96">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-97'
	>
	There is a strong tendency to move <a href="https://infinum.com/mobile-web-apps/">web applications</a> to the cloud. You could say that serverless computing is becoming the new normal. Why not? It&#8217;s quick, cheap, practical, and you can run the app anywhere without the painstaking process of managing the accompanying infrastructure. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-101"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-99">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-100'
	>
	This article focuses on continuous integration through <a href="https://infinum.com/handbook/dotnet/education/visual-studio-features">Visual Studio</a> as larger companies would do it for a bigger solution.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-104"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-102">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-103'
	>
	<strong><strong>How to create an Azure function</strong></strong> in 5 easy steps</h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-107"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="lists" data-id="es-105">
	<ul	class='typography typography--size-16-text-roman js-typography lists__typography'
	data-id='es-106'
	>
	<li><a href="#function-template">Choose the Azure function template</a></li><li><a href="#queue-trigger">Queue Trigger in Azure Functions</a></li><li><a href="#http-trigger">Http Trigger in Azure Functions</a></li><li><a href="#blob-trigger">Blob Trigger in Azure Functions</a></li><li><a href="#timer-trigger">Timer Trigger in Azure Functions</a></li></ul></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-110"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-108">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-109'
	>
	<strong>What is new in the Azure Functions process?</strong></h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-113"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-111">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-112'
	>
	Azure Functions code has always been tightly linked with the .NET version of <strong>Azure Functions Runtime</strong>. Unfortunately, you couldn’t write your code using the latest version of .NET until the Azure Functions team at Microsoft updated their Azure Functions .NET Runtime. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-116"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-114">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-115'
	>
	To avoid this inconvenience, Microsoft introduced the <strong>Isolated Process model</strong>. It allowed us to write the Azure Functions code using any version of .NET, saving developers from future headaches and giving them the necessary flexibility.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-119"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-media">
	<div	class="media block-media__media media__border--none media__align--center-center"
	data-id="es-117"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-118">
	<picture class="image__picture block-media__image-picture">
								
			<source
				srcset=https://infinum.com/uploads/2022/04/image3-1400x485.webp				media='(max-width: 699px)'
				type=image/webp								height="485"
												width="1400"
				 />
								
			<source
				srcset=https://infinum.com/uploads/2022/04/image3-2400x832.webp				media='(max-width: 1199px)'
				type=image/webp								height="832"
												width="2400"
				 />
								
			<source
				srcset=https://infinum.com/uploads/2022/04/image3-3000x1040.webp				media='(max-width: 1999px)'
				type=image/webp								height="1040"
												width="3000"
				 />
												<img
					src="https://infinum.com/uploads/2022/04/image3.webp"
					class="image__img block-media__image-img"
					alt=""
										height="1664"
															width="4800"
										loading="lazy"
					 />
					</picture>

			<figcaption class="image__figcaption block-media__image-figcaption">
			Phases of support for in-process and isolated process through .NET releases		</figcaption>
	</figure></div></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-122"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-120">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-121'
	>
	Running .NET functions in an out-of-process model has many benefits. It gives you complete control of managing the app’s start-up, configuration and the middlewares. Assemblies from your app don’t conflict with different versions of the identical assemblies used by host processes.  </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-125"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-123">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-124'
	>
	As shown in the image above, isolated processes are becoming the recommended way of creating Azure Functions. According to the announcements, in-process functions are to be fully retired in favor of isolated functions, however not before .NET 7 (scheduled to ship in November 2022) becomes available. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-128"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-126">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-127'
	>
	<strong>How to create an Azure project</strong></h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-131"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-129">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-130'
	>
	If you haven&#8217;t already, update .NET to version 6. You can do that by updating to the new shiny <strong>Visual Studio 2022</strong> with built-in SDK or downloading it from here: <a href="https://dotnet.microsoft.com/en-us/download/dotnet/6.0">.NET 6.0 SDK</a>.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-134"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-132">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-133'
	>
	In Visual Studio 2022, <strong>Azure Functions Core Tools</strong>, necessary for developing Azure Functions, are available by adding the <strong>Azure Cloud Tool</strong> in the installation process of VS. But if you&#8217;re not using Visual Studio to create an Azure Functions project, you will need to have Azure Functions Core Tools installed. They include the commands to create functions, deploy function projects and connect to Azure. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-137"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-135">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-136'
	>
	Furthermore, Azure Functions interlock with <strong>Azure Storage services</strong>. To run functions, we have to provide a general-purpose Azure Storage account that will keep track of function execution state and triggers. However, if we want to run them locally, without specifying a storage account, the Azure storage emulator will be used. The emulator is included in VS22 by default, so installing it separately is unnecessary. To explore storage account data, we can use the <a href="https://azure.microsoft.com/en-us/features/storage-explorer/#overview">Azure Storage Explorer</a>.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-140"
	 data-animation='slideFade' data-animation-target='inner-items'>
				<div class="wrapper__anchor" id="function-template"></div>
	
			<div class="block-heading" data-id="es-138">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-139'
	>
	<strong>Creating a separate Azure Functions project</strong></h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-143"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-141">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-142'
	>
	There are two ways of creating Azure functions: through your IDE or the Command Prompt. In this article, we are going with the latter. We can run the command through the <strong>terminal window or the Command Prompt</strong> to create an Azure Functions project. Navigate to the desired folder and run the following command. You can give it any name you want:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-145"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-code">
	<pre class="phiki language-php github-light" data-language="php" style="background-color: #fff;color: #24292e;"><code><span class="line"><span class="token" style="color: #d73a49;">&lt;</span><span class="token" style="color: #005cc5;">em</span><span class="token" style="color: #d73a49;">&gt;</span><span class="token" style="color: #005cc5;">func</span><span class="token"> </span><span class="token" style="color: #005cc5;">init</span><span class="token"> </span><span class="token" style="color: #005cc5;">ProjectName</span><span class="token" style="color: #d73a49;">&lt;</span><span class="token" style="color: #d73a49;">/</span><span class="token" style="color: #005cc5;">em</span><span class="token" style="color: #d73a49;">&gt;</span><span class="token">
</span></span></code></pre></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-148"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-146">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-147'
	>
	This command will create a new folder with the project name to nest your functions.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-151"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-149">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-150'
	>
	After that, you may get a prompt message to choose the runtime for your Azure Functions project. Since we are using .NET with an isolated process, we will select <em>dotnet (isolated process)</em>.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-154"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-152">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-153'
	>
	After scaffolding, you should see something like this in your desired folder:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-157"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-media">
	<div	class="media block-media__media media__border--none media__align--center-center"
	data-id="es-155"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-156">
	<picture class="image__picture block-media__image-picture">
								
			<source
				srcset=https://infinum.com/uploads/2022/04/image2-1400x489.webp				media='(max-width: 699px)'
				type=image/webp								height="489"
												width="1400"
				 />
								
			<source
				srcset=https://infinum.com/uploads/2022/04/image2-2400x839.webp				media='(max-width: 1199px)'
				type=image/webp								height="839"
												width="2400"
				 />
								
			<source
				srcset=https://infinum.com/uploads/2022/04/image2-3000x1049.webp				media='(max-width: 1999px)'
				type=image/webp								height="1049"
												width="3000"
				 />
												<img
					src="https://infinum.com/uploads/2022/04/image2.webp"
					class="image__img block-media__image-img"
					alt=""
										height="1678"
															width="4800"
										loading="lazy"
					 />
					</picture>

	</figure></div></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-160"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-158">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-159'
	>
	<strong>host.json</strong></h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-163"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-161">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-162'
	>
	The global configuration file <strong>host.json</strong> includes settings that affect all functions deployed under the same function app. Host.json gets published when the functions are deployed. Additional information about settings available in the host.json file can be found on <a href="https://docs.microsoft.com/en-us/azure/azure-functions/functions-host-json">this link</a>.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-165"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-code">
	<pre class="phiki language-json github-light" data-language="json" style="background-color: #fff;color: #24292e;"><code><span class="line"><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #005cc5;">&quot;</span><span class="token" style="color: #005cc5;">version</span><span class="token" style="color: #005cc5;">&quot;</span><span class="token">:</span><span class="token"> </span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">2.0</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">,</span><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #005cc5;">&quot;</span><span class="token" style="color: #005cc5;">logging</span><span class="token" style="color: #005cc5;">&quot;</span><span class="token">:</span><span class="token"> </span><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">        </span><span class="token" style="color: #005cc5;">&quot;</span><span class="token" style="color: #005cc5;">applicationInsights</span><span class="token" style="color: #005cc5;">&quot;</span><span class="token">:</span><span class="token"> </span><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">            </span><span class="token" style="color: #005cc5;">&quot;</span><span class="token" style="color: #005cc5;">samplingSettings</span><span class="token" style="color: #005cc5;">&quot;</span><span class="token">:</span><span class="token"> </span><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">                </span><span class="token" style="color: #005cc5;">&quot;</span><span class="token" style="color: #005cc5;">isEnabled</span><span class="token" style="color: #005cc5;">&quot;</span><span class="token">:</span><span class="token"> </span><span class="token" style="color: #005cc5;">true</span><span class="token">,</span><span class="token">
</span></span><span class="line"><span class="token">                </span><span class="token" style="color: #005cc5;">&quot;</span><span class="token" style="color: #005cc5;">excludedTypes</span><span class="token" style="color: #005cc5;">&quot;</span><span class="token">:</span><span class="token"> </span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">Request</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">
</span></span><span class="line"><span class="token">            </span><span class="token">}</span><span class="token"> 
</span></span><span class="line"><span class="token">        </span><span class="token">}</span><span class="token"> 
</span></span><span class="line"><span class="token">    </span><span class="token">}</span><span class="token"> 
</span></span><span class="line"><span class="token">}</span><span class="token">
</span></span></code></pre></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-168"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-166">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-167'
	>
	<strong>local.settings.json</strong></h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-171"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-169">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-170'
	>
	App settings, connection strings, and settings utilized by local development are all stored in the <strong>local.settings.json</strong> file. This file is only used when projects are run locally.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-173"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-code">
	<pre class="phiki language-json github-light" data-language="json" style="background-color: #fff;color: #24292e;"><code><span class="line"><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #005cc5;">&quot;</span><span class="token" style="color: #005cc5;">IsEncrypted</span><span class="token" style="color: #005cc5;">&quot;</span><span class="token">:</span><span class="token"> </span><span class="token" style="color: #005cc5;">false</span><span class="token">,</span><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #005cc5;">&quot;</span><span class="token" style="color: #005cc5;">Values</span><span class="token" style="color: #005cc5;">&quot;</span><span class="token"> </span><span class="token">:</span><span class="token"> </span><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">        </span><span class="token" style="color: #005cc5;">&quot;</span><span class="token" style="color: #005cc5;">AzureWebJobsStorage</span><span class="token" style="color: #005cc5;">&quot;</span><span class="token">:</span><span class="token"> </span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">UseDevelopmentStorage=true</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">,</span><span class="token">
</span></span><span class="line"><span class="token">        </span><span class="token" style="color: #005cc5;">&quot;</span><span class="token" style="color: #005cc5;">FUNCTIONS_WORKER_RUNTIME</span><span class="token" style="color: #005cc5;">&quot;</span><span class="token">:</span><span class="token"> </span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">dotnet-isolated</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">,</span><span class="token">
</span></span><span class="line"><span class="token">        </span><span class="token" style="color: #005cc5;">&quot;</span><span class="token" style="color: #005cc5;">MyConnection</span><span class="token" style="color: #005cc5;">&quot;</span><span class="token">:</span><span class="token"> </span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">&lt;connection-string-to-your-databse&gt;</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">,</span><span class="token">
</span></span><span class="line"><span class="token">        </span><span class="token" style="color: #005cc5;">&quot;</span><span class="token" style="color: #005cc5;">MyOptions:Option1</span><span class="token" style="color: #005cc5;">&quot;</span><span class="token">:</span><span class="token"> </span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">value</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">,</span><span class="token">
</span></span><span class="line"><span class="token">        </span><span class="token" style="color: #005cc5;">&quot;</span><span class="token" style="color: #005cc5;">MyOptions:Option2</span><span class="token" style="color: #005cc5;">&quot;</span><span class="token">:</span><span class="token"> </span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">value</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token">}</span><span class="token">,</span><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token" style="color: #005cc5;">&quot;</span><span class="token" style="color: #005cc5;">ConnectionStrings</span><span class="token" style="color: #005cc5;">&quot;</span><span class="token">:</span><span class="token"> </span><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">        </span><span class="token" style="color: #005cc5;">&quot;</span><span class="token" style="color: #005cc5;">DefaultConnection</span><span class="token" style="color: #005cc5;">&quot;</span><span class="token">:</span><span class="token"> </span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">UseDevelopmentStorage=true</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token">}</span><span class="token"> 
</span></span><span class="line"><span class="token">}</span><span class="token">
</span></span></code></pre></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-176"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-174">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-175'
	>
	<code>UseDevelopmentStorage=true</code> is equivalent to the connection string for the emulator. If you want to use a value from the local.settings.json file in the function entrance, you can use <code>"%MyOptions.Option1%"</code>. This is only applicable in the Values field. You don&#8217;t need to use the percentage characters if you want to read a connection string from the Values field. The Connection Strings field will read: <code>"ConnectionStrings:DefaultConnection"</code>.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-179"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-177">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-178'
	>
	<strong>Program.cs</strong></h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-182"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-180">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-181'
	>
	<strong>Dependency registration, options configuration, </strong>and<strong> db context configuration </strong>are all set in the Program.cs class. From there, we use dependency injection the same way we use it in any class.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-184"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-code">
	<pre class="phiki language-c github-light" data-language="c" style="background-color: #fff;color: #24292e;"><code><span class="line"><span class="token">public class Program
</span></span><span class="line"><span class="token"> </span><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">     public </span><span class="token" style="color: #d73a49;">static</span><span class="token"> </span><span class="token" style="color: #d73a49;">void</span><span class="token"> </span><span class="token" style="color: #6f42c1;">Main</span><span class="token">(</span><span class="token">)</span><span class="token">
</span></span><span class="line"><span class="token">     </span><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">         var host </span><span class="token" style="color: #d73a49;">=</span><span class="token"> new </span><span class="token" style="color: #6f42c1;">HostBuilder</span><span class="token">(</span><span class="token">)</span><span class="token">
</span></span><span class="line"><span class="token">             .</span><span class="token" style="color: #6f42c1;">ConfigureFunctionsWorkerDefaults</span><span class="token">(</span><span class="token">)</span><span class="token">
</span></span><span class="line"><span class="token">             .</span><span class="token" style="color: #6f42c1;">ConfigureServices</span><span class="token">(</span><span class="token">services </span><span class="token" style="color: #d73a49;">=</span><span class="token" style="color: #d73a49;">&gt;</span><span class="token">
</span></span><span class="line"><span class="token">             </span><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">                 </span><span class="token" style="color: #24292e;">services</span><span class="token">.</span><span class="token" style="color: #6f42c1;">AddDbContext</span><span class="token">(</span><span class="token">options 
</span></span><span class="line"><span class="token">                   </span><span class="token" style="color: #d73a49;">=</span><span class="token" style="color: #d73a49;">&gt;</span><span class="token"> </span><span class="token" style="color: #24292e;">Options</span><span class="token">.</span><span class="token" style="color: #6f42c1;">UseSqlServer</span><span class="token">(</span><span class="token">
</span></span><span class="line"><span class="token">                          </span><span class="token" style="color: #24292e;">Environment</span><span class="token">.</span><span class="token" style="color: #6f42c1;">GetEnvironmentVariable</span><span class="token">(</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">MyConnection</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">)</span><span class="token">)</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">                 </span><span class="token" style="color: #24292e;">services</span><span class="token">.</span><span class="token" style="color: #6f42c1;">AddOptions</span><span class="token">(</span><span class="token">)</span><span class="token">
</span></span><span class="line"><span class="token">                     .</span><span class="token" style="color: #6f42c1;">Configure</span><span class="token">(</span><span class="token">(</span><span class="token">settings</span><span class="token">,</span><span class="token"> configuration</span><span class="token">)</span><span class="token">
</span></span><span class="line"><span class="token">                          </span><span class="token" style="color: #d73a49;">=</span><span class="token" style="color: #d73a49;">&gt;</span><span class="token"> </span><span class="token" style="color: #24292e;">configuration</span><span class="token">.</span><span class="token" style="color: #6f42c1;">GetSection</span><span class="token">(</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">MyOptions</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">)</span><span class="token">.</span><span class="token" style="color: #6f42c1;">Bind</span><span class="token">(</span><span class="token">settings</span><span class="token">)</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">                 </span><span class="token" style="color: #24292e;">services</span><span class="token">.</span><span class="token" style="color: #6f42c1;">AddScoped</span><span class="token">(</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">                 </span><span class="token" style="color: #24292e;">services</span><span class="token">.</span><span class="token" style="color: #6f42c1;">AddScoped</span><span class="token">(</span><span class="token">)</span><span class="token">;</span><span class="token">    
</span></span><span class="line"><span class="token">             </span><span class="token">}</span><span class="token">)</span><span class="token">.</span><span class="token" style="color: #6f42c1;">Build</span><span class="token">(</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">         </span><span class="token" style="color: #24292e;">host</span><span class="token">.</span><span class="token" style="color: #6f42c1;">Run</span><span class="token">(</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">     </span><span class="token">}</span><span class="token">
</span></span><span class="line"><span class="token"> </span><span class="token">}</span><span class="token">
</span></span></code></pre></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-187"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-185">
	<h2	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-186'
	>
	<strong>How to create an Azure function</strong></h2></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-190"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-188">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-189'
	>
	Now that we set everything up, we can create our first Azure function. Again, we come back to the Command Prompt or the terminal window, navigate to the folder we created, and run the command:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-192"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-code">
	<pre class="phiki language-php github-light" data-language="php" style="background-color: #fff;color: #24292e;"><code><span class="line"><span class="token" style="color: #005cc5;">func</span><span class="token"> </span><span class="token" style="color: #005cc5;">new</span><span class="token">
</span></span></code></pre></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-195"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-193">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-194'
	>
	You will get a prompt message to choose the function template.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-198"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-media">
	<div	class="media block-media__media media__border--none media__align--center-center"
	data-id="es-196"
	 data-media-type='image'>

	<figure class="image block-media__image-figure image--size-stretch" data-id="es-197">
	<picture class="image__picture block-media__image-picture">
								
			<source
				srcset=https://infinum.com/uploads/2022/04/image4-1400x511.webp				media='(max-width: 699px)'
				type=image/webp								height="511"
												width="1400"
				 />
								
			<source
				srcset=https://infinum.com/uploads/2022/04/image4-2400x876.webp				media='(max-width: 1199px)'
				type=image/webp								height="876"
												width="2400"
				 />
								
			<source
				srcset=https://infinum.com/uploads/2022/04/image4-3000x1095.webp				media='(max-width: 1999px)'
				type=image/webp								height="1095"
												width="3000"
				 />
												<img
					src="https://infinum.com/uploads/2022/04/image4.webp"
					class="image__img block-media__image-img"
					alt=""
										height="1752"
															width="4800"
										loading="lazy"
					 />
					</picture>

	</figure></div></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-201"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-199">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-200'
	>
	There are a couple of templates, so here is a short review of a few of the most commonly used functions.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-204"
	 data-animation='slideFade' data-animation-target='inner-items'>
				<div class="wrapper__anchor" id="queue-trigger"></div>
	
			<div class="block-heading" data-id="es-202">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-203'
	>
	<strong>Queue Trigger</strong> in <strong>Azure Functions</strong></h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-207"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-205">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-206'
	>
	A function is triggered when a new message in the queue appears. The function &#8220;listens&#8221; to the queue storage and when a new message comes in, the function logic is executed. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-210"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-208">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-209'
	>
	<strong>Azure Queue Storage</strong> is a service used for storing a large number of messages in the cloud, which applications would later process at their own pace. Primarily, it helps ensure the delivery of system messages between and within applications. The maximum message size is 64 kB. </p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-213"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-211">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-212'
	>
	You should know that Queue Storage does not support data ordering, so the order of enqueuing is not guaranteed. However, it helps with scaling applications and in managing sudden traffic bursts by offloading background and non-interactive workloads. Developers can also use Queue Storage for decoupling application components.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-215"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-code">
	<pre class="phiki language-c github-light" data-language="c" style="background-color: #fff;color: #24292e;"><code><span class="line"><span class="token">public </span><span class="token" style="color: #d73a49;">static</span><span class="token"> class QueueTrigger
</span></span><span class="line"><span class="token"> </span><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token">[</span><span class="token" style="color: #6f42c1;">Function</span><span class="token">(</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">QueueTrigger</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">)</span><span class="token">]</span><span class="token">
</span></span><span class="line"><span class="token">    public </span><span class="token" style="color: #d73a49;">static</span><span class="token"> </span><span class="token" style="color: #d73a49;">void</span><span class="token"> </span><span class="token" style="color: #6f42c1;">Run</span><span class="token">(</span><span class="token">
</span></span><span class="line"><span class="token">      </span><span class="token">[</span><span class="token" style="color: #6f42c1;">QueueTrigger</span><span class="token">(</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">myqueue-items</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">,</span><span class="token"> Connection </span><span class="token" style="color: #d73a49;">=</span><span class="token"> </span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">)</span><span class="token">]</span><span class="token">  string myQueueItem</span><span class="token">,</span><span class="token">  ILogger log</span><span class="token">)</span><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">        var logger </span><span class="token" style="color: #d73a49;">=</span><span class="token"> </span><span class="token" style="color: #24292e;">context</span><span class="token">.</span><span class="token" style="color: #6f42c1;">GetLogger</span><span class="token">(</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">QueueTrigger</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">        </span><span class="token" style="color: #24292e;">logger</span><span class="token">.</span><span class="token" style="color: #6f42c1;">LogInformation</span><span class="token">(</span><span class="token">$</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">C# Queue trigger function processed: {myQueueItem}</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token">}</span><span class="token">
</span></span><span class="line"><span class="token"> </span><span class="token">}</span><span class="token">
</span></span></code></pre></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-218"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-216">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-217'
	>
	The class and the method don&#8217;t have to be static.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-221"
	 data-animation='slideFade' data-animation-target='inner-items'>
				<div class="wrapper__anchor" id="http-trigger"></div>
	
			<div class="block-heading" data-id="es-219">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-220'
	>
	<strong>Http Trigger</strong> in <strong>Azure Functions</strong></h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-224"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-222">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-223'
	>
	HTTP triggers convert the incoming HTTP request message into an <a href="https://learn.microsoft.com/en-us/dotnet/api/microsoft.azure.functions.worker.http.httprequestdata?view=azure-dotnet&amp;preserve-view=true">HttpRequestData </a>object which is then passed to the function. This object contains data from the request such as Headers, Cookies, Identities, URL, and optionally the message Body. It represents the HTTP request object and not the request itself.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-226"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-code">
	<pre class="phiki language-c github-light" data-language="c" style="background-color: #fff;color: #24292e;"><code><span class="line"><span class="token">
</span></span><span class="line"><span class="token">public </span><span class="token" style="color: #d73a49;">static</span><span class="token"> class HttpTrigger
</span></span><span class="line"><span class="token"> </span><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">     </span><span class="token">[</span><span class="token" style="color: #6f42c1;">Function</span><span class="token">(</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">HttpTrigger</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">)</span><span class="token">]</span><span class="token">
</span></span><span class="line"><span class="token">     public </span><span class="token" style="color: #d73a49;">static</span><span class="token"> HttpResponseData </span><span class="token" style="color: #6f42c1;">Run</span><span class="token">(</span><span class="token">
</span></span><span class="line"><span class="token">         </span><span class="token">[</span><span class="token" style="color: #6f42c1;">HttpTrigger</span><span class="token">(</span><span class="token" style="color: #24292e;">AuthorizationLevel</span><span class="token">.</span><span class="token" style="color: #24292e;">Function</span><span class="token">,</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">get</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">,</span><span class="token"> </span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">post</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">)</span><span class="token">]</span><span class="token"> HttpRequestData req</span><span class="token">,</span><span class="token">
</span></span><span class="line"><span class="token">         ILogger log</span><span class="token">)</span><span class="token">
</span></span><span class="line"><span class="token">     </span><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">         var logger </span><span class="token" style="color: #d73a49;">=</span><span class="token"> </span><span class="token" style="color: #24292e;">executionContext</span><span class="token">.</span><span class="token" style="color: #6f42c1;">GetLogger</span><span class="token">(</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">HttpTrigger</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">         </span><span class="token" style="color: #24292e;">logger</span><span class="token">.</span><span class="token" style="color: #6f42c1;">LogInformation</span><span class="token">(</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">C# HTTP trigger function processed a request.</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">         var response </span><span class="token" style="color: #d73a49;">=</span><span class="token"> </span><span class="token" style="color: #24292e;">req</span><span class="token">.</span><span class="token" style="color: #6f42c1;">CreateResponse</span><span class="token">(</span><span class="token" style="color: #24292e;">HttpStatusCode</span><span class="token">.</span><span class="token" style="color: #24292e;">OK</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">         </span><span class="token" style="color: #24292e;">response</span><span class="token">.</span><span class="token" style="color: #24292e;">Headers</span><span class="token">.</span><span class="token" style="color: #6f42c1;">Add</span><span class="token">(</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">Content-Type</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">,</span><span class="token"> </span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">text/plain; charset=utf-8</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">         </span><span class="token" style="color: #24292e;">response</span><span class="token">.</span><span class="token" style="color: #6f42c1;">WriteString</span><span class="token">(</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">Welcome to Azure Functions!</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">         </span><span class="token" style="color: #d73a49;">return</span><span class="token"> response</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">     </span><span class="token">}</span><span class="token">
</span></span><span class="line"><span class="token"> </span><span class="token">}</span><span class="token">
</span></span></code></pre></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-229"
	 data-animation='slideFade' data-animation-target='inner-items'>
				<div class="wrapper__anchor" id="blob-trigger"></div>
	
			<div class="block-heading" data-id="es-227">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-228'
	>
	<strong>Blob Trigger</strong> in <strong>Azure Functions</strong></h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-232"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-230">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-231'
	>
	The function runs whenever a new file is created or updated in a blob container. The blob contents are input to the function.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-235"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-233">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-234'
	>
	<strong>Blob Containers</strong> are used for storing unstructured data (text or binary), so, really, any data (audio, video, backups, archiving, text…). Blobs are then grouped into &#8220;containers&#8221; and tied to storage accounts. They are massively scalable.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-237"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-code">
	<pre class="phiki language-c github-light" data-language="c" style="background-color: #fff;color: #24292e;"><code><span class="line"><span class="token">
</span></span><span class="line"><span class="token">public </span><span class="token" style="color: #d73a49;">static</span><span class="token"> class BlobTrigger
</span></span><span class="line"><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token">[</span><span class="token" style="color: #6f42c1;">Functi</span><span class="token" style="color: #6f42c1;">o</span><span class="token" style="color: #6f42c1;">n</span><span class="token">(</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">BlobTrigger</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">)</span><span class="token">]</span><span class="token">
</span></span><span class="line"><span class="token">    public </span><span class="token" style="color: #d73a49;">static</span><span class="token"> </span><span class="token" style="color: #d73a49;">void</span><span class="token"> </span><span class="token" style="color: #6f42c1;">R</span><span class="token" style="color: #6f42c1;">u</span><span class="token" style="color: #6f42c1;">n</span><span class="token">(</span><span class="token">
</span></span><span class="line"><span class="token">         </span><span class="token">[</span><span class="token" style="color: #6f42c1;">Bl</span><span class="token" style="color: #6f42c1;">o</span><span class="token" style="color: #6f42c1;">bTrigger</span><span class="token">(</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">samples-workitems/{name}</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">,</span><span class="token"> Connection </span><span class="token" style="color: #d73a49;">=</span><span class="token"> </span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">)</span><span class="token">]</span><span class="token"> string myBlob</span><span class="token">,</span><span class="token">                            
</span></span><span class="line"><span class="token">         string name</span><span class="token">,</span><span class="token"> 
</span></span><span class="line"><span class="token">         ILogger log</span><span class="token">)</span><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">        var logger </span><span class="token" style="color: #d73a49;">=</span><span class="token"> </span><span class="token" style="color: #24292e;">con</span><span class="token" style="color: #24292e;">t</span><span class="token" style="color: #6f42c1;">ext.GetLo</span><span class="token">g</span><span class="token">ger(</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">BlobTrigger</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">        </span><span class="token" style="color: #24292e;">lo</span><span class="token" style="color: #24292e;">g</span><span class="token" style="color: #6f42c1;">ger.LogInforma</span><span class="token">t</span><span class="token">ion(</span><span class="token">$</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">C# Blob trigger function Processed blob</span><span class="token" style="color: #005cc5;">\n</span><span class="token" style="color: #032f62;"> Name: {name} </span><span class="token" style="color: #005cc5;">\n</span><span class="token" style="color: #032f62;">   
</span></span><span class="line"><span class="token" style="color: #032f62;">               Data: {myBlob}</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token">}</span><span class="token">
</span></span><span class="line"><span class="token">}</span><span class="token">
</span></span></code></pre></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-240"
	 data-animation='slideFade' data-animation-target='inner-items'>
				<div class="wrapper__anchor" id="timer-trigger"></div>
	
			<div class="block-heading" data-id="es-238">
	<h3	class='typography typography--size-36-text js-typography block-heading__heading'
	data-id='es-239'
	>
	<strong>Timer Trigger</strong> in <strong>Azure Functions</strong></h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-243"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-241">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-242'
	>
	This function enables us to schedule a recurring function execution at a specified time. It uses <strong>CRON expressions</strong> to provide timing information. The CRON expression consists of six parts – second, minute, hour, day, month, and day of the week and each part is separated by space. Find out more about<a href="https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-timer?tabs=csharp#ncrontab-expressions"> CRON expressions and their usage</a>.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-246"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-244">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-245'
	>
	Triggering is always cyclic; for example, the <code>0 0 0 * * *</code> CRON expression triggers the function once every day. There is also a neat<a href="https://crontab.cronhub.io/"> Cron expression generator</a>, which makes things easier.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-248"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-code">
	<pre class="phiki language-c github-light" data-language="c" style="background-color: #fff;color: #24292e;"><code><span class="line"><span class="token">
</span></span><span class="line"><span class="token">public </span><span class="token" style="color: #d73a49;">static</span><span class="token"> class TimerTrigger
</span></span><span class="line"><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token">[</span><span class="token" style="color: #6f42c1;">Functi</span><span class="token" style="color: #6f42c1;">o</span><span class="token" style="color: #6f42c1;">n</span><span class="token">(</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">TimerTrigger</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">)</span><span class="token">]</span><span class="token">
</span></span><span class="line"><span class="token">    public </span><span class="token" style="color: #d73a49;">static</span><span class="token"> </span><span class="token" style="color: #d73a49;">void</span><span class="token"> </span><span class="token" style="color: #6f42c1;">R</span><span class="token" style="color: #6f42c1;">u</span><span class="token" style="color: #6f42c1;">n</span><span class="token">(</span><span class="token">[</span><span class="token" style="color: #6f42c1;">TimerTrigg</span><span class="token" style="color: #6f42c1;">e</span><span class="token" style="color: #6f42c1;">r</span><span class="token">(</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">0 */5 * * * *</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">)</span><span class="token">]</span><span class="token">  
</span></span><span class="line"><span class="token">        MyInfo myTimer</span><span class="token">,</span><span class="token"> 
</span></span><span class="line"><span class="token">        ILogger log</span><span class="token">)</span><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">        </span><span class="token" style="color: #6f42c1;">log.LogInforma</span><span class="token">t</span><span class="token">ion(</span><span class="token">$</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">C# Timer trigger function executed at: {DateTime.Now}</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">        </span><span class="token" style="color: #6f42c1;">log.LogInforma</span><span class="token">t</span><span class="token">ion(</span><span class="token">$</span><span class="token" style="color: #032f62;">&quot;</span><span class="token" style="color: #032f62;">Next timer schedule at: {myTimer.ScheduleStatus.Next}</span><span class="token" style="color: #032f62;">&quot;</span><span class="token">)</span><span class="token">;</span><span class="token">
</span></span><span class="line"><span class="token">    </span><span class="token">}</span><span class="token">
</span></span><span class="line"><span class="token">}</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token">public class MyInfo
</span></span><span class="line"><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">    public MyScheduleStatus ScheduleStatus </span><span class="token">{</span><span class="token"> get</span><span class="token">;</span><span class="token"> set</span><span class="token">;</span><span class="token"> </span><span class="token">}</span><span class="token">
</span></span><span class="line"><span class="token">    public </span><span class="token" style="color: #d73a49;">bool</span><span class="token"> IsPastDue </span><span class="token">{</span><span class="token"> get</span><span class="token">;</span><span class="token"> set</span><span class="token">;</span><span class="token"> </span><span class="token">}</span><span class="token">
</span></span><span class="line"><span class="token">}</span><span class="token">
</span></span><span class="line"><span class="token">
</span></span><span class="line"><span class="token">public class MyScheduleStatus
</span></span><span class="line"><span class="token">{</span><span class="token">
</span></span><span class="line"><span class="token">    public DateTime Last </span><span class="token">{</span><span class="token"> get</span><span class="token">;</span><span class="token"> set</span><span class="token">;</span><span class="token"> </span><span class="token">}</span><span class="token">
</span></span><span class="line"><span class="token">    public DateTime Next </span><span class="token">{</span><span class="token"> get</span><span class="token">;</span><span class="token"> set</span><span class="token">;</span><span class="token"> </span><span class="token">}</span><span class="token">
</span></span><span class="line"><span class="token">    public DateTime LastUpdated </span><span class="token">{</span><span class="token"> get</span><span class="token">;</span><span class="token"> set</span><span class="token">;</span><span class="token"> </span><span class="token">}</span><span class="token">
</span></span><span class="line"><span class="token">}</span><span class="token">
</span></span></code></pre></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-251"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-249">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-250'
	>
	The example above includes a separate class that contains more info about the execution schedule, including previous and next execution times.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-254"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-252">
	<h3	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-253'
	>
	<strong>How to run Azure functions</strong></h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-257"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-255">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-256'
	>
	We did everything up to this point in the terminal or the Command Prompt. Yes, you guessed it, we will run the functions in the same place. We should navigate to the file where our functions reside and enter the command:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-259"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-code">
	<pre class="phiki language-php github-light" data-language="php" style="background-color: #fff;color: #24292e;"><code><span class="line"><span class="token" style="color: #005cc5;">func</span><span class="token"> </span><span class="token" style="color: #005cc5;">host</span><span class="token"> </span><span class="token" style="color: #005cc5;">start</span><span class="token">
</span></span></code></pre></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-262"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-260">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-261'
	>
	This command starts all the functions you have in the project.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-265"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-263">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-264'
	>
	If you want to run a specific function, enter:</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-267"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-code">
	<pre class="phiki language-php github-light" data-language="php" style="background-color: #fff;color: #24292e;"><code><span class="line"><span class="token" style="color: #005cc5;">func</span><span class="token"> </span><span class="token" style="color: #005cc5;">host</span><span class="token"> </span><span class="token" style="color: #005cc5;">start</span><span class="token"> </span><span class="token" style="color: #d73a49;">--</span><span class="token" style="color: #005cc5;">functions</span><span class="token"> </span><span class="token" style="color: #005cc5;">NameOfTheFunction</span><span class="token">
</span></span></code></pre></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-270"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-268">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-269'
	>
	You can debug your function as you debug any .NET application.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-273"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-heading" data-id="es-271">
	<h3	class='typography typography--size-52-default js-typography block-heading__heading'
	data-id='es-272'
	>
	Azure Functions – a cloud-based pioneer</h3></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-276"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-274">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-275'
	>
	Congratulations, you now know how to create and run Azure Functions in .NET 6! <strong>Azure Functions</strong> provides a sleek and powerful way of creating lightweight applications. This serverless solution allows us to maintain less infrastructure, write less code, and save on costs. Thanks to continuous improvements and feature enrichment, we will see more and more of them in the future.</p></div>	</div>

<div
	class="wrapper wrapper__use-simple--true"
	data-id="es-279"
	 data-animation='slideFade' data-animation-target='inner-items'>
		
			<div class="block-paragraph" data-id="es-277">
	<p	class='typography typography--size-16-text-roman js-typography block-paragraph__paragraph'
	data-id='es-278'
	>
	If you want to dig deeper into the conversation and get more information about application development, <a href="https://infinum.com/contact/" target="_blank" rel="noreferrer noopener">let’s keep talking</a>!</p></div>	</div>
</div>
</div>		</div>
	</div><p>The post <a href="https://infinum.com/blog/creating-azure-functions-with-net-6-in-isolated-process/">Creating Azure Functions with .NET 6 in Isolated Process</a> appeared first on <a href="https://infinum.com">Infinum</a>.</p>
]]>
				</content:encoded>
			</item>
		
	</channel>
</rss>