Sign In Start Free Trial
Account

Add to playlist

Create a Playlist

Modal Close icon
You need to login to use this feature.
  • Book Overview & Buying Azure Serverless Computing Cookbook
  • Table Of Contents Toc
  • Feedback & Rating feedback
Azure Serverless Computing Cookbook

Azure Serverless Computing Cookbook

By : Praveen Kumar Sreeram
5 (1)
close
close
Azure Serverless Computing Cookbook

Azure Serverless Computing Cookbook

5 (1)
By: Praveen Kumar Sreeram

Overview of this book

This third edition of Azure Serverless Computing Cookbook guides you through the development of a basic back-end web API that performs simple operations, helping you understand how to persist data in Azure Storage services. You'll cover the integration of Azure Functions with other cloud services, such as notifications (SendGrid and Twilio), Cognitive Services (computer vision), and Logic Apps, to build simple workflow-based applications. With the help of this book, you'll be able to leverage Visual Studio tools to develop, build, test, and deploy Azure functions quickly. It also covers a variety of tools and methods for testing the functionality of Azure functions locally in the developer's workstation and in the cloud environment. Once you're familiar with the core features, you'll explore advanced concepts such as durable functions, starting with a "hello world" example, and learn about the scalable bulk upload use case, which uses durable function patterns, function chaining, and fan-out/fan-in. By the end of this Azure book, you'll have gained the knowledge and practical experience needed to be able to create and deploy Azure applications on serverless architectures efficiently.
Table of Contents (14 chapters)
close
close
13
Index

Building a back-end web API using HTTP triggers

In this recipe, we'll use Azure's serverless architecture to build a web API using HTTP triggers. These HTTP triggers could be consumed by any front-end application that is capable of making HTTP calls.

Getting ready

Let's start our journey of understanding Azure serverless computing using Azure Functions by creating a basic back-end web API that responds to HTTP requests:

How to do it…

Perform the following steps to build a web API using HTTP triggers:

  1. Navigate to the Function App listing page by clicking on the Function Apps menu, which is available on the left-hand side.
  2. Create a new function by clicking on the + icon:
    Adding a new function
    Figure 1.2: Adding a new function
  3. You'll see the Azure Functions for .NET - getting started page, which prompts you to choose the type of tools based on your preference. For the initial few chapters, we'll use the In-portal option, which can quickly create Azure Functions right from the portal without making use of any tools. However, in the coming chapters, we'll make use of Visual Studio and Azure Functions Core Tools to create these functions:
    The Azure portal enables you to choose the development environment. Choose In-Portal to develop from within the Azure portal

    Figure 1.3: Choosing the development environment
  4. In the next step, select More templates… and click on Finish and view templates, as shown in Figure 1.4:
    Choosing More templates… and clicking Finish to view templates
    Figure 1.4: Choosing More templates… and clicking Finish and view templates
  5. In the Choose a template below or go to the quickstart section, choose HTTP trigger to create a new HTTP trigger function:
    Choosing the HTTP Trigger template to create a new function
    Figure 1.5: The HTTP trigger template
  6. Provide a meaningful name. For this example, I have used RegisterUser as the name of the Azure function.
  7. In the Authorization level drop-down menu, choose the Anonymous option. You'll learn more about all the authorization levels in Chapter 9, Configuring security for Azure Functions:
    Selecting the Anonymous option in the Authorization Level
    Figure 1.6: Selecting the authorization level
  8. Click on the Create button to create the HTTP trigger function.
  9. Along with the function, all the required code and configuration files will be created automatically and the run.csx file with editable code will get opened. Remove the default code and replace it with the following code. In the following example, we'll add two parameters (firstname and lastname), which will be displayed in the output as a result of triggering the HTTP trigger:
    #r "Newtonsoft.Json" using System.Net;
    using Microsoft.AspNetCore.Mvc;
    using Microsoft.Extensions.Primitives; using Newtonsoft.Json;
    public static async Task<IActionResult> Run(
    HttpRequest req, ILogger log)
    #r "Newtonsoft.Json"
    using System.Net;
    using Microsoft.AspNetCore.Mvc;
    using Microsoft.Extensions.Primitives;
    using Newtonsoft.Json;
    public static async Task<IActionResult> Run(HttpRequest req, ILogger log)
    {
        log.LogInformation("C# HTTP trigger function processed a request.");
        string firstname=null,lastname = null; 
        string requestBody = await new 
        StreamReader(req.Body).ReadToEndAsync();
        dynamic inputJson = JsonConvert.DeserializeObject(requestBody); 
        firstname =    firstname ?? inputJson?.firstname;
        lastname = inputJson?.lastname;
        return (lastname + firstname) != null
        ? (ActionResult)new OkObjectResult($"Hello, {firstname + " " + lastname}")
        : new BadRequestObjectResult("Please pass a name on the query" + "string or in the request body");
    }
  10. Save the changes by clicking on the Save button available just above the code editor.
  11. Let's try testing the RegisterUser function using the test console. Click on the Test tab to open the test console:
    Testing the HTTP Trigger
    Figure 1.7: Testing the HTTP trigger
  12. Enter the values for firstname and lastname in the Request body section:
    Testing the HTTP Trigger with input data
    Figure 1.8: Testing the HTTP trigger with input data
  13. Make sure that you select POST in the HTTP method drop-down box.
  14. After reviewing the input parameters, click on the Run button available at the bottom of the test console:
    HTTP Trigger execution and output
    Figure 1.9: HTTP trigger execution and output
  15. If the input request workload is passed correctly with all the required parameters, you'll see Status: 200 OK, and the output in the output window will be as shown in Figure 1.9.
  16. Let's discuss how it works next.

How it works…

You have created your first Azure function using HTTP triggers and have made a few modifications to the default code. The code accepts the firstname and lastname parameters and prints the name of the end user with a Hello {firstname} {lastname} message as a response. You also learned how to test the HTTP trigger function right from the Azure Management portal.

Note

For the sake of simplicity, validation of the input parameters is not executed in this exercise. Be sure to validate all input parameters in applications running in a production environment.

See also

  • The Enabling authorization for function apps recipe in Chapter 9, Configuring security for Azure Functions.

In the next recipe, you'll learn about persisting employee details.

Unlock full access

Continue reading for free

A Packt free trial gives you instant online access to our library of over 7000 practical eBooks and videos, constantly updated with the latest in tech

Create a Note

Modal Close icon
You need to login to use this feature.
notes
bookmark search playlist download font-size

Change the font size

margin-width

Change margin width

day-mode

Change background colour

Close icon Search
Country selected

Close icon Your notes and bookmarks

Delete Bookmark

Modal Close icon
Are you sure you want to delete it?
Cancel
Yes, Delete

Delete Note

Modal Close icon
Are you sure you want to delete it?
Cancel
Yes, Delete

Edit Note

Modal Close icon
Write a note (max 255 characters)
Cancel
Update Note

Confirmation

Modal Close icon
claim successful

Buy this book with your credits?

Modal Close icon
Are you sure you want to buy this book with one of your credits?
Close
YES, BUY