DEV Community

Edgaras
Edgaras

Posted on

Deploying Azure Functions with Python: A Step-by-Step Guide

Azure Functions is a serverless computing service provided by Microsoft Azure, enabling developers to run event-driven code without worrying about server management. In this article, we’ll walk through how to deploy Azure Functions using Python.

Prerequisites

Before we start, ensure you have the following:

1​. An Azure account.

2​. Azure CLI installed. If it is not installed, follow these steps to set it up:

  • For Windows: Download and install the MSI installer from here.

  • For macOS: Use Homebrew to install it:

brew update && brew install azure-cli
Enter fullscreen mode Exit fullscreen mode
  • For Linux: Use your package manager to install Azure CLI. For example:
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
Enter fullscreen mode Exit fullscreen mode

For detailed installation steps, refer to the official documentation here.

3​. Python (3.9 or later).

4​. Visual Studio Code or any preferred IDE.

5​. The Azure Functions Core Tools installed. You can install it via npm:

npm install -g azure-functions-core-tools@4 --unsafe-perm true
Enter fullscreen mode Exit fullscreen mode

Step 1: Create an Azure Function App Locally

1​. Open your terminal and create a new directory for your project:

mkdir azure-functions-python
cd azure-functions-python
Enter fullscreen mode Exit fullscreen mode

2​. Initialize a new Azure Functions project:

func init . --python
Enter fullscreen mode Exit fullscreen mode

This sets up the necessary project structure and files for Python.

3​. Create a new function:

func new
Enter fullscreen mode Exit fullscreen mode

Select a template (e.g., HTTP trigger), specify the 'authLevel' parameter (e.g., 'anonymous' for public access, or 'function' or 'admin' for restricted access), and give your function a name.

Step 2: Test Locally

1​. Run the Azure Function locally:

func start
Enter fullscreen mode Exit fullscreen mode

2​. Open a browser and test the function using the URL provided in the terminal output. Modify the function to return a simple "Hello, World!" message by editing the function’s main Python file (function_app.py) and updating it as follows:

import azure.functions as func
import datetime
import json
import logging

app = func.FunctionApp()

@app.route(route="http_trigger", auth_level=func.AuthLevel.ANONYMOUS)
def http_trigger(req: func.HttpRequest) -> func.HttpResponse:
  logging.info('Python HTTP trigger function processed a request.')
  return func.HttpResponse("Hello, World!", status_code=200)
Enter fullscreen mode Exit fullscreen mode

3​. Save the file and re-run the function locally to see the updated output.

func start
Enter fullscreen mode Exit fullscreen mode

Step 3: Prepare for Deployment

1​. Log in to your Azure account:

az login
Enter fullscreen mode Exit fullscreen mode

2​. Create a new resource group (optional, you can create a new one or use an existing one):
To create a new resource group:

az group create --name MyResourceGroup --location eastus
Enter fullscreen mode Exit fullscreen mode

or list existing resource groups:

az group list --output table
Enter fullscreen mode Exit fullscreen mode

To select an existing resource group, use its name directly in subsequent commands, such as in the --resource-group parameter of Azure CLI commands.

3​. Create a storage account: To create a new storage account (required for Azure Functions):

az storage account create --name mystorageaccount --location eastus --resource-group MyResourceGroup --sku Standard_LRS
Enter fullscreen mode Exit fullscreen mode

Alternatively, you can select an existing storage account by referencing its name in the next command.

4​. Create a function app:

az functionapp create --resource-group MyResourceGroup --consumption-plan-location eastus --os-type Linux --runtime python --runtime-version 3.9 --functions-version 4 --name MyFunctionApp --storage-account mystorageaccount
Enter fullscreen mode Exit fullscreen mode

Step 4: Deploy to Azure

1​. Deploy your function app using the Azure CLI:

func azure functionapp publish MyFunctionApp
Enter fullscreen mode Exit fullscreen mode

2​. After deployment, note the URL provided in the output to test your deployed function.

Step 5: Test Your Deployed Function

1​. Open a browser or use a tool like Postman to test your function with the deployed URL.

2​. Confirm that it works as expected.

Top comments (0)