Exercise - Create an Azure function triggered by a webhook
In this first exercise, you'll create your code to parse the GitHub wiki event messages in Azure Functions. You'll configure your function to run when a webhook message is received.
Create a Function App
Sign in to the Azure portal using your Microsoft Learn account.
Select Create a resource. The Create a resource pane appears.
In the left menu pane, under Categories, select Compute, and in the Search services and marketplace search box, search for and select Function App. The Function App pane appears. Select Create.
Select Consumption, then select the Select button. The Create Function App pane appears.
On the Basics tab, enter the following values for each setting.
Note
The Function App Name must be unique. We suggest using something like <your name or initials>triggerapp. Use this name wherever you see <your-functionapp-name> in this exercise.
Setting Value Project Details Subscription Concierge Subscription Resource Group From the dropdown list, select the sandbox resource group, [sandbox resource group name] .Instance Details Function App Name <your-functionapp-name> Operating System Windows Runtime stack Node.js Version Accept default Region Choose the nearest location to you that is also one of the allowed Sandbox regions. The free sandbox allows you to create resources in a subset of the Azure global regions. Select a region from the following list when you create resources:
- West US 2
- South Central US
- Central US
- East US
- West Europe
- Southeast Asia
- Japan East
- Brazil South
- Australia Southeast
- Central India
Select Next : Storage to open the Storage tab. Enter the following values for each setting.
Setting Value Storage Storage account (New), and accept the default name. Select Review + create.
Azure verifies your entries. When verified, select Create.
Create a webhook triggered function
When your deployment is complete, select Go to resource. The Overview pane appears for your Function App.
Under Functions in the center pane, select Create function under Create in Azure portal.
The Create function pane appears.
Under Select a template, select HTTP trigger, and then select Next.
Accept the default Function name and Authorization level. Select Create. The HttpTrigger1 pane appears for your Function, displaying essentials for your new trigger.
Select Code + Test at the top of the window. The Code + Test pane appears for your Function, displaying the JavaScript file that was created from the template. It should look like the following code.
module.exports = async function (context, req) { context.log('JavaScript HTTP trigger function processed a request.'); const name = (req.query.name || (req.body && req.body.name)); const responseMessage = name ? "Hello, " + name + ". This HTTP triggered function executed successfully." : "This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response."; context.res = { // status: 200, /* Defaults to 200 */ body: responseMessage }; }
The index.js file is the JavaScript function generated by the portal. The request reads name, either passed in as a query string or as part of the request body, and responds with a "Hello" message.
Above the code is the path with a dropdown list showing the filename. In the dropdown list, select function.json. The JSON file that was created by the template appears. It should look like the following code.
{ "bindings": [ { "authLevel": "function", "type": "httpTrigger", "direction": "in", "name": "req", "methods": [ "get", "post" ] }, { "type": "http", "direction": "out", "name": "res" } ] }
The JSON bindings specify that the function is triggered by HTTP GET and POST requests directed towards the URL of the function app.
Test triggering your function
In the top menu bar, select Get function URL.
In the Get function URL dialog box, select the Copy to clipboard icon in the default (Function key) field. The URL will look something like this:
https://<your-functionapp-name>.azurewebsites.net/api/HttpTrigger1?code=aUjXIpqdJ0ZHPQuB0SzFegxGJu0nAXmsQBnmkCpJ6RYxleRaoxJ8cQ==
Paste this URL into a browser, and at the end of URL, append the query string parameter: &name=<yourname>; for example; &name=Dick and Jane.
To run the request, press Enter. The response returned by the function appears in the browser. It will look something like this:
Hello Dick and Jane. This HTTP triggered function executed successfully.
Congratulations! You now have a function that can be triggered by a URL.