使用 Python 部署 Azure Functions

Azure Functions 是 Microsoft Azure 提供的无服务器计算服务,使开发人员能够运行事件驱动的代码,而无需担心服务器管理。在本文中,我们将介绍如何使用 Python 部署 Azure Functions。

先决条件

在开始之前,请确保您已准备好以下内容:

1. 一个 Azure 帐户。

2. Azure CLI 已安装。如果尚未安装,请按照以下步骤进行设置:

  • 对于 Windows:从此处下载并安装 MSI 安装程序。
  • 对于 macOS:使用 Homebrew 安装:
  • brew update && brew install azure-cli
  • 对于 Linux:使用包管理器安装 Azure CLI。例如:
  • curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash

    详细的安装步骤可以参考这里的官方文档。

    3. Python(3.9或更高版本)。

    4. Visual Studio Code 或任何首选 IDE。

    5. Azure Functions Core Tools 已安装。您可以通过 npm 安装它:

    npm install -g azure-functions-core-tools@4 --unsafe-perm true

    步骤 1:在本地创建 Azure 函数应用

    1. 打开终端并为您的项目创建一个新目录:

    mkdir azure-functions-python
    cd azure-functions-python

    2. 初始化新的 Azure Functions 项目:

    func init . --python

    这将为 Python 设置必要的项目结构和文件。

    3. 创建新函数:

    func new

    选择一个模板(例如,HTTP 触发器),指定“authLevel”参数(例如,公共访问为“anonymous”,受限访问为“function”或“admin”),并为您的函数命名。

    第 2 步:本地测试

    1. 在本地运行 Azure 函数:

    func start

    2. 打开浏览器并使用终端输出中提供的 URL 测试该函数。通过编辑函数的主 Python 文件 (`function_app.py`) 并按如下方式更新,修改该函数以返回简单的“Hello, World!”消息:

    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)

    3. 保存文件并在本地重新运行该函数以查看更新的输出。

    func start

    步骤 3:准备部署

    1. 登录您的 Azure 帐户:

    az login

    2. 创建一个新的资源组(可选,您可以创建一个新的或使用现有的):

    要创建新的资源组,请执行以下操作:

    az group create --name MyResourceGroup --location eastus

    或者列出现有的资源组:

    az group list --output table

    要选择现有资源组,请在后续命令中直接使用其名称,例如在 Azure CLI 命令的 `--resource-group` 参数中。

    3. 创建存储帐户:要创建新的存储帐户(Azure Functions 所需):

    az storage account create --name mystorageaccount --location eastus --resource-group MyResourceGroup --sku Standard_LRS

    或者,您可以通过在下一个命令中引用其名称来选择一个现有的存储帐户。

    4. 创建函数应用程序:

    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

    步骤 4:部署到 Azure

    1. 使用 Azure CLI 部署函数应用:

    func azure functionapp publish MyFunctionApp

    2. 部署后,请记下输出中提供的 URL,以测试您部署的功能。

    步骤 5:测试已部署的功能

    1. 打开浏览器或使用 Postman 等工具通过部署的 URL 测试您的功能。

    2​. 确认其按预期工作。