你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
快速入门:在 Azure 容器应用中使用 Azure 应用程序配置
在本快速入门中,你将在 Azure 容器应用中运行的应用中使用Azure 应用程序配置。 这样,就可以在容器应用中集中存储和管理应用配置。 本快速入门将利用在快速入门:使用应用程序配置创建 ASP.NET Core 应用中创建的 ASP.NET Core 应用。 将该应用容器化,并将其部署到 Azure 容器应用。 请先完成该快速入门,再进行后续操作。
提示
在遵循本快速入门的同时,最好将所有新资源注册在一个资源组内,以便将它们重新组合在一个位置,以后如果不再需要它们,可以更快地将其删除。
先决条件
- 使用应用程序配置存储的应用程序。 如果没有实例,请使用快速入门:使用应用程序配置创建 ASP.NET Core应用来创建实例。
- Azure 容器应用实例。 如果没有实例,请使用 Azure 门户 或 CLI 创建实例。
- Docker Desktop
- Azure CLI
将 Azure 应用程序配置连接到容器应用
在 Azure 门户中导航到你的容器应用实例。
按照 Azure 容器应用的服务连接器快速入门,使用以下设置创建应用程序配置存储区的服务连接。
在“基本信息”选项卡中:
在“身份验证”选项卡中:
- 选择“系统分配的托管标识”身份验证类型
- 展开“高级”菜单
- 向你的标识分配“应用程序配置数据读取者”角色
- 在“配置信息”下,找到名为
AZURE_APPCONFIGURATION_ENDPOINT
的环境变量。 选择右侧的铅笔图标,然后编辑环境变量名称,使其与你从中加载应用程序配置终结点的应用程序中的变量名称匹配。 如果按照 ASP.NET Core 快速入门构建应用程序,则变量名称是Endpoints:AppConfiguration
。 编辑变量名称时,将冒号替换为双下划线,使其成为Endpoints__AppConfiguration
。 如果使用的其他应用程序,请输入相应的环境变量名称,然后选择“完成”。
对其他所有内容使用默认值。
创建连接后,名为
Endpoints__AppConfiguration
的环境变量将添加到容器应用资源的容器中。 它的值是对容器应用机密(即应用程序配置存储区的终结点)的引用。
生成容器
运行 dotnet publish 命令,在版本模式下生成应用,并在“已发布”文件夹中创建资产。
dotnet publish -c Release -o published
在包含 .csproj 文件的目录中创建名为 Dockerfile 的文件,在文本编辑器中打开该文件,然后输入以下内容。 Dockerfile 是一个没有扩展名的文本文件,用于创建容器映像。
FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS runtime WORKDIR /app COPY published/ ./ ENTRYPOINT ["dotnet", "TestAppConfig.dll"]
运行以下命令生成容器。
docker build --tag aspnetapp .
创建 Azure 容器注册表实例
创建 Azure 容器注册表 (ACR)。 ACR 可用于生成、存储和管理容器映像。
- 若要创建容器注册表,请按照 Azure 容器注册表快速入门的指导进行。
- 部署完成后,打开 ACR 实例,然后在左侧菜单中选择“设置 > 访问密钥”。
- 记录下此页面列出的“登录服务器”值。 在稍后的步骤中会使用此信息。
- 将“管理员用户”切换为“已启用”。 此选项用于使用管理员用户凭据将 ACR 连接到 Azure 容器应用。 或者,可以将其保留为禁用状态,并将容器应用配置为使用托管标识从注册表中拉取映像。
向 Azure 容器注册表推送映像
将 Docker 映像推送到之前创建的 ACR。
运行 az acr login 命令,登录此注册表。
az acr login --name myregistry
登录成功后,命令将返回
Login Succeeded
。使用 docker tag 来标记映像的相应详细信息。
docker tag aspnetapp myregistry.azurecr.io/aspnetapp:v1
提示
若要查看现有 Docker 映像和标记的列表,请运行
docker image ls
。 在此方案中,应至少显示两个图像:aspnetapp
和myregistry.azurecr.io/aspnetapp
。使用 docker push 将映像推送到容器注册表。 此示例将在 ACR 中创建 aspnetapp 存储库,其中包含
aspnetapp
映像。 在下面的示例中,将占位符<login-server
、<image-name>
和<tag>
替换为 ACR 的登录服务器值、映像名称和映像标记。方法:
docker push <login-server>/<image-name>:<tag>
示例:
docker push myregistry.azurecr.io/aspnetapp:v1
在 Azure 门户中打开 Azure 容器注册表,并确认“存储库”下显示了新的存储库。
将容器映像添加到 Azure 容器应用
更新容器应用以从 ACR 加载容器映像。
在 Azure 门户中,打开 Azure 容器应用实例。
在左侧菜单的“应用程序”下,选择“容器”。
选择“编辑并部署”。
在“容器映像”下,单击现有容器映像的名称。
更新以下设置:
设置 建议值 说明 映像源 Azure 容器注册表 选择“Azure 容器注册表”作为映像源。 身份验证 管理员凭据 使用前面在容器注册表中启用的管理员用户凭据选项。 如果未启用管理员用户,但配置为使用托管标识,则需要在窗体中手动输入映像和标记。 注册表 myregistry.azurecr.io 选择之前创建的 Azure 容器注册表。 映像 aspnetapp 选择之前创建并推送到 ACR 的 Docker 映像。 映像标记 v1 从列表中选择你的映像标记。 选择“保存”,然后选择“创建”,将更新部署到 Azure 容器应用。
浏览至 Azure 容器应用的 URL
在 Azure 门户的 Azure 容器应用实例中,访问“概述”选项卡并打开“应用程序 URL”。
Web 页面如下所示:
清理资源
如果不想继续使用本文中创建的资源,请删除此处创建的资源组以避免产生费用。
重要
删除资源组的操作不可逆。 将永久删除资源组以及其中的所有资源。 请确保不要意外删除错误的资源组或资源。 如果在包含要保留的其他资源的资源组中创建了本文的资源,请从相应的窗格中单独删除每个资源,而不是删除该资源组。
- 登录到 Azure 门户,然后选择“资源组”。
- 在“按名称筛选”框中,输入资源组的名称。
- 在结果列表中,选择资源组名称以查看概述。
- 选择“删除资源组”。
- 系统会要求确认是否删除资源组。 重新键入资源组的名称进行确认,然后选择“删除”。
片刻之后,将会删除该资源组及其所有资源。
相关内容
在本快速入门中,请执行以下操作:
- 已将 Azure 应用程序配置连接到 Azure 容器应用
- 已使用 Docker 从具有应用程序配置设置的 ASP.NET Core 应用生成容器映像
- 已创建 Azure 容器注册表实例
- 已将映像推送到 Azure 容器注册表实例
- 已将容器映像添加到 Azure 容器应用
- 已浏览至 Azure 容器应用实例的 URL,该实例通过你在应用程序配置存储中配置的设置进行了更新。
托管标识允许某个 Azure 资源访问另一个资源,而无需维护机密。 可以简化从容器应用到其他 Azure 资源的访问流程。 有关详细信息,请参阅如何使用托管标识访问应用程序配置以及如何使用托管标识访问容器注册表。
若要了解如何配置 ASP.NET Core Web 应用以动态刷新配置设置,请继续学习下一个教程。