你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

在 Azure 容器应用中使用 Azure Functions

本文介绍如何 在 Azure 容器应用中创建 Azure Functions 应用,并完成预配置的自动缩放规则。

先决条件

资源 DESCRIPTION
Azure 帐户 拥有有效订阅的 Azure 帐户。

如果没有帐户,可以免费创建一个帐户
Azure 存储帐户 一个用于储存 Azure Functions 的状态的 Blob 存储帐户
Azure Application Insights Azure Application Insights 的实例,用于收集有关容器应用的数据。

创建 函数应用

以下步骤演示如何使用示例容器映像创建容器应用。 如果要将此过程与自定义容器映像配合使用,请参阅在 Azure 容器应用中创建您的第一个 Azure Function容器中的 Functions

  1. 转到 Azure 门户并在搜索栏中搜索 容器应用

  2. 选择“容器应用”。

  3. 选择 创建

  4. 选择 容器应用

  5. “基本信息 ”部分中,输入以下值。

    在“项目详细信息”下

    资产 价值
    订阅 选择 Azure 订阅。
    资源组 选择“ 创建新资源组”,将其命名 为 my-aca-functions-group,然后选择“ 确定”。
    容器应用名称 输入 my-aca-functions-app
  6. “针对 Azure Functions 进行优化” 旁边勾选复选框。

  7. “容器应用”环境中 输入:

    资产 价值
    区域 选择离你最近的区域。
    容器应用环境 选择“ 创建新环境”。
  8. 在环境设置窗口中,输入:

    资产 价值
    环境名称 输入 my-aca-functions-environment
    区域冗余 选择“已禁用”。
  9. 选择 “创建” 以保存值。

  10. 选择“ 下一步:容器 ”切换到 “容器 ”部分。

  11. 在“使用快速入门映像”旁边,使此框保持未选中状态。

  12. “容器详细信息 ”部分下,输入以下值。

    资产 价值
    名称 此框已根据您在上一节中的选择进行预填充。
    图像源 选择 Docker 中心或其他注册表
    订阅 选择订阅。
    映像类型 选择公共
    注册表登录服务器 输入 mcr.microsoft.com
    映像和标记 输入 azure-functions/dotnet8-quickstart-demo:1.0
  13. “环境变量 ”下,输入以下变量的值:

    • AzureWebJobsStorage
    • APPINSIGHTS_INSTRUMENTATIONKEYAPPLICATIONINSIGHTS_CONNECTION_STRING

    为这些变量输入托管标识或连接字符串值。 建议使用托管标识。

    AzureWebJobsStorage 变量是 Azure Functions 所需的 Azure 存储帐户连接字符串。 此存储帐户存储函数执行日志、管理触发器和绑定,并维护持久函数的状态。

    Application Insights 是一种监视和诊断服务,提供对 Azure Functions 性能和使用情况的见解。 此监视可帮助你跟踪请求速率、响应时间、故障率和其他指标。

    小窍门

    默认情况下,容器化函数应用监视传入请求的端口 80 。 如果应用使用不同的端口,请使用 WEBSITES_PORT 应用程序设置更改默认端口。

  14. 选择“下一步”>“Ingress”以切换到“Ingress”部分,并输入以下值。

    资产 价值
    流入量 选中 “启用 ”复选框以启用入口。
    入口流量 选择 “从任意位置接受流量”。
    入口类型 选择“HTTP”。
    目标端口 输入 80
  15. 选择 审阅 + 创建

  16. 选择 创建

  17. 部署完成后,选择转到资源

  18. “概述 ”页中,选择 应用程序 URL 旁边的链接,在新浏览器选项卡中打开该应用程序。

  19. /api/HttpExample 追加到 URL 的末尾。

    浏览器中返回一条消息,指出“HTTP 触发器函数已处理请求”。

先决条件

创建函数应用程序

若要从 CLI 登录到 Azure,请运行以下命令,然后按照提示完成身份验证过程。

  1. 登录到 Azure。

    az login
    
  2. 为了确保运行最新版本的 CLI,请运行升级命令。

    az upgrade
    
  3. 安装或更新 CLI 的 Azure 容器应用扩展。

    如果在 Azure CLI 中运行 az containerapp 命令,或在 PowerShell 中运行 Az.App 模块中的 cmdlet 时收到有关缺少参数的错误,请确保已安装最新版本的 Azure 容器应用扩展。

    az extension add --name containerapp --upgrade
    

    现在已安装当前扩展或模块,接下来请注册 Microsoft.AppMicrosoft.OperationalInsights 命名空间。

    az provider register --namespace Microsoft.App
    
    az provider register --namespace Microsoft.OperationalInsights
    
  4. 创建环境变量。

    RESOURCE_GROUP_NAME="my-aca-functions-group"
    CONTAINER_APP_NAME="my-aca-functions-app"
    ENVIRONMENT_NAME="my-aca-functions-environment"
    LOCATION="westus"
    
  5. 创建资源组。

    az group create \
      --name $RESOURCE_GROUP_NAME \
      --___location $LOCATION \
      --output none
    
  6. 创建容器应用环境。

    az containerapp env create \
        --name $ENVIRONMENT_NAME \
        --resource-group $RESOURCE_GROUP_NAME \
        --___location $LOCATION \
        --output none
    
  7. 创建 Azure Functions 容器应用。

    az containerapp create \
      --resource-group $RESOURCE_GROUP_NAME \
      --name $CONTAINER_APP_NAME \
      --environment $ENVIRONMENT_NAME \
      --image mcr.microsoft.com/azure-functions/dotnet8-quickstart-demo:1.0 \
      --ingress external \
      --target-port 80 \
      --kind functionapp \
      --query properties.outputs.fqdn
    

    此命令返回 Functions 应用的 URL。 复制此 URL 并将其粘贴到 Web 浏览器中。

  8. /api/HttpExample 追加到 URL 的末尾。

    浏览器中返回一条消息,指出“HTTP 触发器函数已处理请求”。