你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
使用 Azure Pipelines 将设置推送到应用配置
Azure 应用配置推送任务可将配置文件中的键值推送到你的应用配置存储中。 此任务在管道内实现了全循环功能,因为你现在可以从应用配置存储中拉取设置,还可以将设置推送到应用配置存储。
先决条件
- Azure 订阅 - 创建免费帐户
- 应用配置资源 - 在 Azure 门户中免费创建一个。
- Azure DevOps 项目 - 免费创建一个
- “Azure 应用配置推送”任务 - 从 Visual Studio Marketplace 免费下载。
- Node 10 - 适用于在自托管代理上运行任务的用户。
创建服务连接
通过服务连接,可以从 Azure DevOps 项目访问 Azure 订阅中的资源。
在 Azure DevOps 中,转到包含目标管道的项目。 在左下角,选择“项目设置”。
在“管道”下,选择“服务连接”。 在右上角,选择“新建服务连接”。
在“新建服务连接”中,选择“Azure 资源管理器”。
在“身份验证方法”对话框中,选择“服务主体(自动)”以创建新的服务主体,或者选择“服务主体(手动)”以使用现有服务主体。
输入订阅和资源,并为服务连接输入一个名称。
如果创建了新的服务主体,请查找分配给服务连接的服务主体的名称。 在下一步中,你将向此服务主体添加新的角色分配。
访问“项目设置”>“服务连接”。
选择新服务连接。
选择“管理服务主体”。
请注意“显示名称”中的值。
添加角色分配
向任务中使用的凭据分配正确的应用配置角色分配,以便任务可以访问应用配置存储。
转到目标应用程序配置存储。
在左侧菜单中,选择“访问控制(IAM)”。
在右侧窗格中,选择“添加角色分配”。
在“角色”下,选择“应用程序配置数据所有者”。 此角色允许任务在应用配置存储中进行读取和写入。
选择与在上一部分创建的服务连接关联的服务主体。
如果存储包含密钥保管库引用,请转到相关密钥保管库,并将“密钥保管库机密用户”角色分配给在上一步中创建的服务主体。 在“密钥保管库”菜单中,选择“访问策略”并确保选择 Azure 基于角色的访问控制作为权限模型。
在生成中使用
本部分介绍如何在 Azure DevOps 生成管道中使用“Azure 应用配置推送”任务。
- 通过单击“管道”>“管道”,导航到“生成管道”页。 可在此处找到有关生成管道的文档。
- 如果要创建新的“生成管道”,则在该过程的最后一步,在“检查”选项卡上,选择管道右侧的“显示助手” 。

- 如果使用的是现有的“生成管道”,请单击右上角的“编辑”按钮。

- 如果要创建新的“生成管道”,则在该过程的最后一步,在“检查”选项卡上,选择管道右侧的“显示助手” 。
- 搜索“Azure 应用程序配置推送”任务。

- 配置任务的必要参数,以将配置文件中的键值推送到应用配置存储。 参数的说明在下面的“参数”部分以及每个参数旁边的工具提示中提供。

- 保存并将一个生成排入队列。 生成日志将显示在执行任务期间发生的任何故障。
在发布中使用
本部分介绍如何在 Azure DevOps 发布管道中使用“Azure 应用配置推送”任务。
- 通过选择“管道”>“发布”,导航到“发布管道”页。 可在此处找到有关发布管道的文档。
- 选择现有的发布管道。 如果没有现有的发布管道,请选择“+ 新建”创建一个新的发布管道。
- 选择右上角的“编辑”按钮以编辑发布管道。
- 从“任务”下拉列表中,选择要向其添加任务的“阶段” 。 可在此处找到有关阶段的详细信息。

- 单击要向其中添加新任务的作业旁的 +。

- 在“添加任务”对话框中,将“Azure 应用程序配置推送”键入到搜索框并选中它 。
- 配置任务内的必要参数,以将配置文件中的键值推送到应用配置存储。 参数的说明在下面的“参数”部分以及每个参数旁边的工具提示中提供。
- 保存并将一个发布排入队列。 发布日志将显示任务执行过程中遇到的任何故障。
参数
“应用配置推送”任务使用以下参数:
- Azure 订阅:包含可用 Azure 服务连接的下拉列表。 若要更新和刷新可用 Azure 服务连接的列表,请按文本框右侧的“刷新 Azure 订阅”按钮。
- 应用配置名称:用于在所选订阅下加载可用配置存储的下拉列表。 若要更新和刷新可用配置存储的列表,请按文本框右侧的“刷新应用配置名称”按钮。
- 配置文件路径:你的配置文件的路径。 “配置文件路径”参数从文件存储库的根目录开始。 可以浏览生成项目以选择一个配置文件。 (文本框右侧的
...按钮)。 支持的文件格式有:yaml、json 和 properties。 下面是格式为 json 的示例配置文件。{ "TestApp:Settings:BackgroundColor":"#FFF", "TestApp:Settings:FontColor":"#000", "TestApp:Settings:FontSize":"24", "TestApp:Settings:Message": "Message data" } - 分隔符:用于平展 .json 和 .yml 文件的分隔符。
- 深度:要将 .json 和 .yml 文件平展到的深度。
- 前缀:一个字符串,它会追加到向应用配置存储推送的每个键的开头。
- 标签:一个字符串,它会作为标签添加到应用配置存储中的每个键值。
- 内容类型:一个字符串,它会作为内容类型添加到应用配置存储中的每个键值。
- 标记:
{"tag1":"val1", "tag2":"val2"}格式的 JSON 对象,它定义的标记会添加到向应用配置存储推送的每个键值。 - 删除存储中具有指定前缀和标签的所有其他键值:默认值为“未选中”。
- 已选中:推送配置文件中的新键值之前,在应用配置存储中删除所有与指定前缀和标签匹配的键值。
- 未选中:将配置文件中的所有键值推送到应用配置存储,并将应用配置存储中的所有其他内容保持不变。
疑难解答
如果发生意外错误,可以通过将管道变量 system.debug 设置为 true 来启用调试日志。
FAQ
如何上传多个配置文件?
在同一管道中创建“Azure 应用配置推送”任务的多个实例,以将多个配置文件推送到应用配置存储。
如何使用此任务创建 Key Vault 引用?
若要创建 Key Vault 引用,请将“内容类型”参数设置为“application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8”。 如果并非配置文件中的所有键值都是 Key Vault 引用,请将 Key Vault 引用和标准键值放在单独的配置文件中,并分别推送这些配置文件。
为什么在尝试将键值推送到配置存储时会收到 409 错误?
如果任务尝试删除或覆盖在应用配置存储中锁定的键值,将会出现“409 冲突”错误消息。