Azure Documentation

Create a Serverless Function with Azure Functions

This tutorial guides you through the process of creating and deploying your first serverless function using Azure Functions. We'll use Node.js for this example, but the concepts apply to other languages as well.

Prerequisites

Step-by-Step Guide

Step 1: Initialize Your Project

Open your terminal or command prompt, navigate to your desired project directory, and run the following command:

func init MyServerlessProject --worker-runtime node

This creates a new directory named MyServerlessProject with the basic structure for an Azure Functions project.

Step 2: Create a New Function

Navigate into your project directory and create a new HTTP-triggered function:

cd MyServerlessProject
func new --template "HTTP trigger" --name MyHttpFunction

This command creates a new function named MyHttpFunction with an HTTP trigger template.

Step 3: Implement Your Function Logic

Open the MyHttpFunction/index.js file in your code editor. You'll find starter code for an HTTP function. Modify it to add your custom logic.

For example, to return a personalized greeting:

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,
        body: responseMessage
    };
};

Step 4: Test Your Function Locally

Start the Azure Functions host locally:

func start

Once the host is running, you'll see the local URL for your function (e.g., http://localhost:7071/api/MyHttpFunction). You can test this URL in your browser or using tools like cURL. Try adding a name query parameter, like:

http://localhost:7071/api/MyHttpFunction?name=Developer

Step 5: Deploy to Azure

Ensure you are logged in to Azure:

az login

Then, deploy your function app:

func azure functionapp publish <YourFunctionAppName>

Replace <YourFunctionAppName> with a globally unique name for your function app in Azure.

After deployment, Azure will provide you with the URL for your live function.

Next Steps