你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
本文介绍如何 在 Azure 容器应用中创建 Azure Functions 应用,并完成预配置的自动缩放规则。
先决条件
资源 | DESCRIPTION |
---|---|
Azure 帐户 | 拥有有效订阅的 Azure 帐户。 如果没有帐户,可以免费创建一个帐户。 |
Azure 存储帐户 | 一个用于储存 Azure Functions 的状态的 Blob 存储帐户。 |
Azure Application Insights | Azure Application Insights 的实例,用于收集有关容器应用的数据。 |
创建 函数应用
以下步骤演示如何使用示例容器映像创建容器应用。 如果要将此过程与自定义容器映像配合使用,请参阅在 Azure 容器应用中创建您的第一个 Azure Function和容器中的 Functions。
转到 Azure 门户并在搜索栏中搜索 容器应用 。
选择“容器应用”。
选择 创建。
选择 容器应用
在 “基本信息 ”部分中,输入以下值。
在“项目详细信息”下:
资产 价值 订阅 选择 Azure 订阅。 资源组 选择“ 创建新资源组”,将其命名 为 my-aca-functions-group,然后选择“ 确定”。 容器应用名称 输入 my-aca-functions-app。 在 “针对 Azure Functions 进行优化” 旁边勾选复选框。
在 “容器应用”环境中 输入:
资产 价值 区域 选择离你最近的区域。 容器应用环境 选择“ 创建新环境”。 在环境设置窗口中,输入:
资产 价值 环境名称 输入 my-aca-functions-environment 区域冗余 选择“已禁用”。 选择 “创建” 以保存值。
选择“ 下一步:容器 ”切换到 “容器 ”部分。
在“使用快速入门映像”旁边,使此框保持未选中状态。
在 “容器详细信息 ”部分下,输入以下值。
资产 价值 名称 此框已根据您在上一节中的选择进行预填充。 图像源 选择 Docker 中心或其他注册表 订阅 选择订阅。 映像类型 选择公共。 注册表登录服务器 输入 mcr.microsoft.com 映像和标记 输入 azure-functions/dotnet8-quickstart-demo:1.0 在 “环境变量 ”下,输入以下变量的值:
AzureWebJobsStorage
APPINSIGHTS_INSTRUMENTATIONKEY
或APPLICATIONINSIGHTS_CONNECTION_STRING
为这些变量输入托管标识或连接字符串值。 建议使用托管标识。
该
AzureWebJobsStorage
变量是 Azure Functions 所需的 Azure 存储帐户连接字符串。 此存储帐户存储函数执行日志、管理触发器和绑定,并维护持久函数的状态。Application Insights 是一种监视和诊断服务,提供对 Azure Functions 性能和使用情况的见解。 此监视可帮助你跟踪请求速率、响应时间、故障率和其他指标。
小窍门
默认情况下,容器化函数应用监视传入请求的端口
80
。 如果应用使用不同的端口,请使用WEBSITES_PORT
应用程序设置更改默认端口。选择“下一步”>“Ingress”以切换到“Ingress”部分,并输入以下值。
资产 价值 流入量 选中 “启用 ”复选框以启用入口。 入口流量 选择 “从任意位置接受流量”。 入口类型 选择“HTTP”。 目标端口 输入 80。 选择 审阅 + 创建。
选择 创建。
部署完成后,选择转到资源。
在 “概述 ”页中,选择 应用程序 URL 旁边的链接,在新浏览器选项卡中打开该应用程序。
将
/api/HttpExample
追加到 URL 的末尾。浏览器中返回一条消息,指出“HTTP 触发器函数已处理请求”。
先决条件
创建函数应用程序
若要从 CLI 登录到 Azure,请运行以下命令,然后按照提示完成身份验证过程。
登录到 Azure。
az login
为了确保运行最新版本的 CLI,请运行升级命令。
az upgrade
安装或更新 CLI 的 Azure 容器应用扩展。
如果在 Azure CLI 中运行
az containerapp
命令,或在 PowerShell 中运行Az.App
模块中的 cmdlet 时收到有关缺少参数的错误,请确保已安装最新版本的 Azure 容器应用扩展。az extension add --name containerapp --upgrade
现在已安装当前扩展或模块,接下来请注册
Microsoft.App
和Microsoft.OperationalInsights
命名空间。az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights
创建环境变量。
RESOURCE_GROUP_NAME="my-aca-functions-group" CONTAINER_APP_NAME="my-aca-functions-app" ENVIRONMENT_NAME="my-aca-functions-environment" LOCATION="westus"
创建资源组。
az group create \ --name $RESOURCE_GROUP_NAME \ --___location $LOCATION \ --output none
创建容器应用环境。
az containerapp env create \ --name $ENVIRONMENT_NAME \ --resource-group $RESOURCE_GROUP_NAME \ --___location $LOCATION \ --output none
创建 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 浏览器中。
将
/api/HttpExample
追加到 URL 的末尾。浏览器中返回一条消息,指出“HTTP 触发器函数已处理请求”。