使用 Azure Pipelines 将设置推送到应用配置

Azure 应用配置推送任务可将配置文件中的键值推送到你的应用配置存储中。 此任务在管道内实现了全循环功能,因为你现在可以从应用配置存储中拉取设置,还可以将设置推送到应用配置存储。

先决条件

创建服务连接

通过服务连接,可以从 Azure DevOps 项目访问 Azure 订阅中的资源。

  1. 在 Azure DevOps 中,转到包含目标管道的项目。 在左下角,选择“项目设置”。

  2. 在“管道”下,选择“服务连接”。 在右上角,选择“新建服务连接”。

  3. 在“新建服务连接”中,选择“Azure 资源管理器”。

    Screenshot shows selecting Azure Resource Manager from the New service connection dropdown list.

  4. 在“身份验证方法”对话框中,选择“服务主体(自动)”以创建新的服务主体,或者选择“服务主体(手动)”以使用现有服务主体

  5. 输入订阅、资源组,以及服务连接的名称。

如果创建了新的服务主体,请查找分配给服务连接的服务主体的名称。 在下一步中,你将向此服务主体添加新的角色分配。

  1. 访问“项目设置”>“服务连接”。

  2. 选择新服务连接。

  3. 选择“管理服务主体”。

  4. 请注意“显示名称”中的值。

    Screenshot shows the service principal display name.

添加角色分配

向任务中使用的凭据分配正确的应用配置角色分配,以便任务可以访问应用配置存储。

  1. 转到目标应用程序配置存储。

  2. 在左侧菜单中,选择“访问控制(IAM)”。

  3. 在右侧窗格中,选择“添加角色分配”。

    Screenshot shows the Add role assignments button.

  4. 在“角色”下,选择“应用程序配置数据所有者”。 此角色允许任务在应用配置存储中进行读取和写入。

  5. 选择与在上一部分创建的服务连接关联的服务主体。

    Screenshot shows the Add role assignment dialog.

  6. 选择“查看 + 分配”。

在生成中使用

本部分介绍如何在 Azure DevOps 生成管道中使用“Azure 应用配置推送”任务。

  1. 通过单击“管道”>“管道”,导航到“生成管道”页。 可在此处找到有关生成管道的文档。
    • 如果要创建新的“生成管道”,则在该过程的最后一步,在“检查”选项卡上,选择管道右侧的“显示助手” 。

      Screenshot shows the Show assistant button for a new pipeline.

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

      Screenshot shows the Edit button for an existing pipeline.

  2. 搜索“Azure 应用程序配置推送”任务。

    Screenshot shows the Add Task dialog with Azure App Configuration Push in the search box.

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

    Screenshot shows the app configuration push task parameters.

  4. 保存并将一个生成排入队列。 生成日志将显示在执行任务期间发生的任何故障。

在发布中使用

本部分介绍如何在 Azure DevOps 发布管道中使用 Azure 应用程序配置推送任务。

  1. 通过选择“管道”>“发布”,导航到“发布管道”页。 可在此处找到有关发布管道的文档。
  2. 选择现有的发布管道。 如果没有现有的发布管道,请选择“+ 新建”以创建一个新的发布管道。
  3. 选择右上角的“编辑”按钮以编辑发布管道。
  4. 从“任务”下拉列表中,选择要向其添加任务的“阶段” 。 可在此处找到有关阶段的详细信息。

    Screenshot shows the selected stage in the Tasks dropdown.

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

    Screenshot shows the plus button next to the job.

  6. 在“添加任务”对话框中,将“Azure 应用程序配置推送”键入到搜索框并选中它 。
  7. 配置任务内的必要参数,以将配置文件中的键值推送到应用配置存储。 参数的说明在下面的“参数”部分以及每个参数旁边的工具提示中提供。
  8. 保存并将一个发布排入队列。 发布日志将显示任务执行过程中遇到的任何故障。

参数

“应用配置推送”任务使用以下参数:

  • Azure 订阅:包含可用 Azure 服务连接的下拉列表。 若要更新和刷新可用 Azure 服务连接的列表,请按文本框右侧的“刷新 Azure 订阅”按钮。
  • 应用程序配置终结点:用于加载所选订阅下的可用配置存储终结点的下拉列表。 若要更新和刷新可用配置存储终结点的列表,请按文本框右侧的“刷新应用程序配置终结点”按钮。
  • 配置文件路径:你的配置文件的路径。 “配置文件路径”参数从文件存储库的根目录开始。 可以浏览生成项目以选择一个配置文件。 (文本框右侧的 ... 按钮)。 支持的文件格式取决于文件内容配置文件。 对于默认配置文件,支持的文件格式为 yaml、json 和 properties。 对于 KvSet 配置文件,支持的文件格式为 json。
  • 文件内容配置文件:配置文件的内容配置文件。 默认值为“默认”。
    • 默认:指应用程序可直接使用的传统配置文件格式。
    • Kvset:指文件架构,其中包含应用程序配置键值的所有属性,包括键、值、标签、内容类型和标记。 使用 Kvset 配置文件时,任务参数“分隔符”、“标签”、“内容类型”、“前缀”、“标记”和“深度”不适用。
  • 导入模式:默认值为“全部”。 确定导入键值时的行为。
    • 全部:将配置文件中的所有键值导入应用程序配置。
    • 忽略-匹配:仅导入应用程序配置中没有匹配键值的设置。 匹配的键值被视为具有相同键、标签、值、内容类型和标记的键值。
  • 试运行:默认值为“未选中”。
    • 选中:不会对应用程序配置执行更新。 相反,在正常运行中执行的任何更新都将输出到控制台以供查看。
    • 未选中:对应用程序配置执行任何更新并且不输出到控制台。
  • 分隔符:用于平展 .json 和 .yml 文件的分隔符。
  • 深度:要将 .json 和 .yml 文件平展到的深度。
  • 前缀:一个字符串,它会追加到向应用配置存储推送的每个键的开头。
  • 标签:一个字符串,它会作为标签添加到应用配置存储中的每个键值。
  • 内容类型:一个字符串,它会作为内容类型添加到应用配置存储中的每个键值。
  • 标记{"tag1":"val1", "tag2":"val2"} 格式的 JSON 对象,它定义的标记会添加到向应用配置存储推送的每个键值。
  • 删除未包含在配置文件中的键值:默认值为“未选中”。 此选项的行为取决于配置文件内容配置文件。
    • 已选中
      • 默认内容配置文件:推送配置文件中的新键值之前,在应用配置存储中删除所有与指定前缀和标签匹配的键值。
      • Kvset 内容配置文件:推送配置文件中的新键值之前,删除应用程序配置存储中的未包含在配置文件中的所有键值。
    • 未选中:将配置文件中的所有键值推送到应用配置存储,并将应用配置存储中的所有其他内容保持不变。

疑难解答

如果发生意外错误,可以通过将管道变量 system.debug 设置为 true 来启用调试日志。

FAQ

如何上传多个配置文件?

在同一管道中创建“Azure 应用配置推送”任务的多个实例,以将多个配置文件推送到应用配置存储。

如何使用此任务创建密钥保管库引用或功能标志?

请根据你选择的文件内容配置文件,参阅 Azure 应用程序配置对配置文件的支持中的示例。

为什么在尝试将键值推送到配置存储时会收到 409 错误?

如果任务尝试删除或覆盖在应用配置存储中锁定的键值,将会出现“409 冲突”错误消息。