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

使用 Azure Pipelines 向应用程序配置导入设置

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

先决条件

创建服务连接

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

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

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

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

    屏幕截图显示从新的服务连接下拉列表中选择“Azure 资源管理器”。

  4. 在“身份验证方法”对话框中,选择“工作负载联合身份验证(自动)”以创建新的工作负载联合身份验证,或选择“工作负载联合身份验证(手动)”以使用现有的工作负载联合身份验证

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

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

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

  2. 选择新服务连接。

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

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

    屏幕截图显示服务主体显示名称。

添加角色分配

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

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

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

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

    屏幕截图显示“添加角色分配”按钮。

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

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

    屏幕截图显示“添加角色分配”对话框。

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

在生成中使用

本部分介绍如何在 Azure DevOps 生成管道中使用 Azure 应用程序配置导入任务。

  1. 通过单击“管道”>“管道”,导航到“生成管道”页。 有关生成管道的详细信息,请访问创建你的第一个管道
    • 如果要创建新的“生成管道”,则在该过程的最后一步,在“检查”选项卡上,选择管道右侧的“显示助手” 。

      屏幕截图显示新管道的“显示助手”按钮。

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

      屏幕截图显示现有管道的“编辑”按钮。

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

    屏幕截图显示了“添加任务”对话框,其中搜索框中显示“Azure 应用程序配置导入”。

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

    屏幕截图显示了“应用程序配置导入”任务参数。

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

在发布中使用

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

  1. 通过选择“管道”>“发布”,导航到“发布管道”页。 有关发布管道的详细信息,请访问创建你的第一个发布管道
  2. 选择现有的发布管道。 如果没有现有的发布管道,请选择“+ 新建”创建一个新的发布管道。
  3. 选择右上角的“编辑”按钮以编辑发布管道。
  4. 从“任务”下拉列表中,选择要向其添加任务的“阶段” 。 有关阶段的详细信息,可以参阅添加阶段、依赖项和条件

    屏幕截图显示“任务”下拉列表中选定的阶段。

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

    屏幕截图显示作业旁的“+”按钮。

  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 冲突”错误消息。

下一步

如需有关参数的完整参考或在 YAML 管道中使用此管道任务,请参阅以下文档。

若要了解如何从应用程序配置存储导出键值并将其设置为 Azure 管道变量,请继续阅读以下文档。

若要了解如何在应用程序配置存储区中创建快照,请继续阅读以下文档。