How to work with Azure Functions in C#

Azure Features is the serverless compute featuring in the Microsoft Azure cloud. Primarily, “serverless” signifies you don’t even have to have a digital equipment to operate an Azure Perform. Azure Functions are just an implementation of platform as a support (PaaS), one that is primarily based on an occasion-driven programming design. This posting provides an introduction to Azure Functions, why they are valuable, and how we can do the job with them.

As there are no servers that you have to deal with, Azure Functions can scale routinely, and you pay back only for the time your code runs. You can leverage Azure Capabilities for party processing in serious time, or for scheduled info processing work opportunities, these as scheduled data backup or details clear-up. You can even use Azure Features as serverless back again finishes to mobile apps.

Here’s a fast glance at some of the hanging features of Azure Capabilities:

  • Flexible code deployment (through Azure Portal or GitHub, for instance)
  • Support for several languages (C#, F#, Java, Node.js, or PHP)
  • Support for exterior dependencies by means of NuGet or NPM
  • Easy integrations with other Azure products and services

To operate with the code examples presented in this report, you should really have Visible Studio 2022 set up in your method. If you don’t already have a duplicate, you can download Visible Studio 2022 right here.

You should also have the most the latest model of Azure Functionality Tools and an active Azure Subscription. Azure Functionality Tools are incorporated as aspect of the Azure progress workload in Visible Studio 2022.

What are Azure Capabilities? Why do we need them?

Azure Features are hosted expert services on the Microsoft Azure cloud that execute code on demand, with out demanding the provisioning or management of infrastructure. You write only the code you have to have for the undertaking at hand, and Azure Capabilities handles every little thing else.

An Azure Function can be brought on by an event (an HTTP ask for) or on a schedule (using a CRON expression). You can rapidly test capabilities locally as you publish your features just before deploying them to Azure.

Positive aspects and disadvantages of Azure Functions

Diminished fees: One of the most compelling reasons for working with Azure Functions is that it dramatically decreases the price tag of functioning apps. You only have to fork out for the sources you have eaten, and no methods are consumed until finally your operate executes.

Flexibility: You can build and deploy new event-driven capabilities swiftly as your demands alter, and you can modify existing capabilities as nicely.

Scalability: Azure Functions presents scalability by enabling you to swiftly spin up new instances of a operate when demand increases. This eradicates the will need for manually scaling situations up and down in advance, a approach that, if need spikes unpredictably or occasionally, results in being laborious and can also prove inefficient.

Triggers and bindings in Azure Functions

Azure Functions use triggers and, optionally, bindings. Triggers are user-outlined functions that specify how an Azure Functionality will be executed. A bring about can be described by a code attribute and induced by a queue concept, a timer, an HTTP request, a blob, and many others.

Triggers have input bindings that determine the info readily available to the code throughout execution. The HTTP request body is generally passed as a JSON item to the Azure Function’s input parameter in an HTTP set off.

Binding is a way to link means to an Azure Perform declaratively. There are two varieties of bindings: input and output. Though the former permits facts to be enter into the Azure Purpose, the latter enables the Azure Operate to mail details to external assets. You can have only just one induce for an Azure Perform but several bindings.

Types of triggers in Azure Features

The distinct varieties of triggers in Azure Functions make it attainable for you to established up a purpose that runs when an update to a useful resource usually takes put, these types of as an function hub bring about that sends an e mail notify each time your company is current.

HTTP cause: An HTTP induce uses an HTTP endpoint to connect with the purpose by way of an HTTP request. You can use HTTP triggers to create a serverless internet application to get webhooks from other providers.

Timer induce: A Timer bring about is termed on a pre-defined program. This plan can be expressed either in CRON syntax or using intervals. The Timer induce is helpful for scheduling any typical work, this sort of as a thoroughly clean-up job or a weekly electronic mail report.

Party Hubs bring about: An Function Hubs bring about responds to an Party Hubs stream concept. When employing the EventHubTrigger attribute, you can bind to the stream of messages from all partitions.

Blob Storage trigger: A Blob bring about responds to functions in Azure Blob Storage. A Blob induce can start out an Azure Function each time a new Blob is created or an existing Blob is current.

Cosmos DB induce: A Cosmos DB bring about responds to activities produced by Azure Cosmos DB. For example, if you want your Azure Operate to be executed when a new doc is produced in the databases, you can build a Cosmos DB result in and incorporate the important code to deal with the party.

Function Grid set off: An Occasion Grid induce responds to Azure Celebration Grid functions. Event Grid is a serverless function routing company that will allow you to produce procedures that route gatherings from Azure services these types of as Blob storage, useful resource teams, and third-bash methods, to any spot supported by Celebration Grid.

Queue Storage induce: An Azure Queue Storage result in fires when messages are extra to Azure Queue Storage. Azure Queue Storage gives trustworthy, asynchronous messaging in between software elements.

Generic webhook: A webhook is analogous to a person-defined HTTP callback. It provides a light-weight way to be notified by yet another company when some even takes place. A generic webhook is but an additional category of trigger that is fired when an HTTP request originates from a service.

GitHub webhook: A GitHub webhook induce is executed when an celebration takes place in your GitHub repository, these kinds of as a new department is established, an present branch is deleted, or code is dedicated or commented.

Provider Bus bring about: A Assistance Bus induce responds to messages from an Azure Assistance Bus queue or topic.

Produce an Azure Features application task in Visual Studio

To start with off, let’s build a .Web Azure Features software challenge in Visual Studio. Assuming Visible Studio 2022 is set up in your process, adhere to the steps outlined under to build an Azure Features job.

  1. Start the Visible Studio IDE.
  2. Simply click on “Create new venture.”
  3. In the “Create new project” window, select “Azure Functions” from the listing of templates exhibited.
  4. Click Next.
  5. In the “Configure your new project” window demonstrated next, specify the identify and area for the new challenge.
  6. Click on Develop.
  7. In the “Create a new Azure Capabilities application” screen, decide on the style of set off you would like to use for your Azure Functionality.
  8. Click Generate.

You need to now have a new .Web Azure Functions software undertaking ready to go in Visible Studio 2022. We’ll use this job in the subsequent sections of this posting.

Produce a new Azure Function

By default, an Azure Functionality named Functionality1 will be made automatically inside of a file named Function1.cs. Let’s exchange the default perform with the next code:

making use of Procedure
utilizing Method.IO
applying System.Threading.Responsibilities
making use of Microsoft.AspNetCore.Mvc
using Microsoft.Azure.WebJobs
employing Microsoft.Azure.WebJobs.Extensions.Http
working with Microsoft.AspNetCore.Http
making use of Microsoft.Extensions.Logging
working with Newtonsoft.Json
namespace Azure_FunctionAppDemo
    public static course Demo
        community static async Undertaking Operate(
          [HttpTrigger(AuthorizationLevel.Function, "get",
          "post", Route = null)] HttpRequest request,
            ILogger logger)
            logger.LogInformation("An HTTP induced Azure Function.")
            string requestBody = String.Empty
            making use of (StreamReader streamReader = new StreamReader(request.Human body))
                requestBody = await streamReader.ReadToEndAsync()
            return new OkObjectResult(!string.IsNullOrEmpty(requestBody))

Refer to the code listing higher than. An Azure Purpose is represented by a static class obtaining a static purpose known as Run. In this instance, the identify of the Azure Function is Demo. The FunctionName attribute is utilised to point out that the purpose is an Azure Functionality. In addition, it marks the Operate technique as the entry place. The purpose title will have to be unique inside of a task.

The two parameters of the Run strategy are of kind HttpRequest and ILogger. The first parameter permits you to operate with the HttpRequest object (to retrieve ask for metadata, for case in point). The next parameter permits you to log information pertaining to your Azure Operate to a pre-defined log concentrate on.

We know that Azure Features are executed dependent on pre-configured triggers. The utilization of the HttpTrigger attribute implies that the Azure Function named Demo will be dependent on an Http induce. Determine 1 down below shows how you can select the set off for your perform when you make your Azure Features software in Visible Studio.

azure functions 01 IDG

Figure 1. When you build a new Azure Capabilities software in Visible Studio, you select the style of induce you want to use for your Azure Perform.

Test an Azure Function locally

Now that your Azure Function is all set, the next step is to operate it. You can use Azure Capabilities Tools to execute Azure Capabilities locally in your system. You can just press F5 to execute and exam your Azure Function. Note that if Azure Functions Applications is not installed, you will be prompted to put in it when you test to run your operate. Just settle for the request to download and install the applications when prompted.

If Azure Capabilities Equipment are put in, the console window will exhibit the URL of your Azure Function as demonstrated in Determine 2 under.

azure functions 02 IDG

Determine 2. Azure Capabilities Instruments outputs the URL of HTTP-triggered features.

Make a notice of the URL displayed for your Azure Function. We’ll now just take edge of Postman, one of the most well-liked API screening resources, to test the function. When you execute the URL in Postman, you must see output comparable to that displayed in Figure 3 beneath.

azure functions 03 IDG

Figure 3: The Azure Functionality in motion!

Publish an Azure Operate to Azure

Assuming that you’re logged in to Azure, adhere to the methods outlined underneath to publish the Azure Features software undertaking to Azure:

  1. Ideal-simply click on the Azure Functions application job in the Resolution Explorer window.
  2. Click on Publish.
  3. Pick out Azure as the publish goal.
  4. Decide on Azure Operate App (Windows) as the distinct concentrate on.
  5. Click Upcoming.
  6. Eventually, simply click End to comprehensive the procedure.
azure functions 02 IDG

Figure 4. You can publish your Azure Capabilities application to Microsoft Azure immediately from Visual Studio. Just make positive you are logged in to Azure.

You can just take gain of Azure Features to carry out serverless compute features in Azure. The means to run in a serverless natural environment will make Azure Functions very scalable and effective. Azure Capabilities are effectively-suited for scheduled jobs, notifications, and lightweight APIs—any very simple process that can be executed anytime a specified function happens.

Azure Features can be invoked by an HTTP ask for, as demonstrated in this article, or by a webhook, or by an event in Azure Cosmos DB, Blob Storage, Cell Applications, and lots of other Azure providers. You can even result in an Azure Purpose from OneDrive, Excel, or Outlook. And you can retailer the details processed by Azure Features in an Azure storage service, a document databases, or even a SQL database if you want to.

Finally, note that you can use Azure Strong Capabilities, an extension of Azure Features, to create tough, stateful features that run in the Azure cloud. We’ll just take a appear at doing the job with Azure Resilient Features in a later post here.

Copyright © 2022 IDG Communications, Inc.