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

使用 Azure Pipelines 从应用程序配置中导出设置

Azure 应用程序配置导出任务将从应用程序配置存储区中导出键值,并将其设置为 Azure 管道变量,这些变量可由后续任务使用。 此任务是对 Azure 应用程序配置导入任务的补充,后者可将配置文件中的键值导入到应用程序配置存储区中。 有关详细信息,请参阅使用 Azure Pipelines 将设置导入到应用程序配置

先决条件

创建服务连接

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

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

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

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

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

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

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

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

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

  2. 选择新服务连接。

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

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

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

添加角色分配

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

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

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

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

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

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

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

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

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

  7. 如果存储包含密钥保管库引用,请转到相关密钥保管库,并将“密钥保管库机密用户”角色分配给在上一步中创建的服务主体。 在“密钥保管库”菜单中,选择“访问策略”并确保选择 Azure 基于角色的访问控制作为权限模型。

在生成中使用

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

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

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

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

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

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

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

  3. 若要从应用程序配置存储区中导出键值,请配置任务的必要参数。 参数说明在“参数”部分以及每个参数旁边的工具提示中提供。
    • 将“Azure 订阅”参数设置为你在前面步骤中创建的服务连接的名称。
    • 将“应用程序配置终结点”设置为应用程序配置存储的终结点。
    • 保留其余参数的默认值。

      屏幕截图显示“应用配置”任务参数。

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

在发布中使用

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

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

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

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

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

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

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

  7. 若要从应用程序配置存储区中导出键值,请配置任务中的必要参数。 参数说明在“参数”部分以及每个参数旁边的工具提示中提供。
    • 将“Azure 订阅”参数设置为你在前面步骤中创建的服务连接的名称。
    • 将“应用程序配置终结点”设置为应用程序配置存储的终结点。
    • 保留其余参数的默认值。
  8. 保存并将一个发布排入队列。 发布日志会显示执行任务期间遇到的所有故障。

参数

“Azure 应用程序配置导出”任务使用以下参数:

  • Azure 订阅:包含可用 Azure 服务连接的下拉列表。 若要更新和刷新可用 Azure 服务连接的列表,请按文本框右侧的“刷新 Azure 订阅”按钮。
  • 应用程序配置终结点:用于加载所选订阅下的可用配置存储终结点的下拉列表。 若要更新和刷新可用配置存储终结点的列表,请按文本框右侧的“刷新应用程序配置终结点”按钮。
  • 选择模式:指定如何选择从配置存储中读取的键值。 “默认”选择模式允许使用键和标签筛选器。 “快照”选择模式允许从快照中选择键值。 默认值为“默认”。
  • 键筛选器:该筛选器可用于选择从 Azure 应用程序配置中请求哪些键值。 值 * 将选择所有键值。 有关详细信息,请参阅查询键值
  • 标签:指定从应用程序配置存储中选择键值时应使用的标签。 如果未提供标签,则将检索带有 no 标签的键值。 不允许使用以下字符:, *。
  • 快照名称:指定应在 Azure 应用程序配置中检索键值的快照。
  • 剪裁键前缀:指定在将应用程序配置键设置为变量之前,应从中剪裁的一个或多个前缀。 新行字符可用于分隔多个前缀。
  • 禁止显示已重写键的警告:默认值未选中。 指定在重写现有键时是否显示警告。 如果期望从应用程序配置下载的键值与管道变量中存在的键重叠,请启用此选项。

在后续任务中使用键值

从应用程序配置中提取的键值将设置为管道变量,可以作为环境变量进行访问。 环境变量的键是剪裁前缀后从应用程序配置中检索的键值的键(如果指定)。

例如,如果后续任务运行 PowerShell 脚本,则它可能会使用包含“myBuildSetting”键的键值,如下所示:

echo "$env:myBuildSetting"

值会在控制台中输出。

注意

将解析应用程序配置中的 Azure Key Vault 引用,并将其设置为机密变量。 在 Azure 管道中,会从日志中屏蔽机密变量。 它们不会作为环境变量传递到任务中,而是作为输入传递。

故障排除

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

FAQ

如何根据多个键和标签撰写配置?

有时可能需要根据多个标签撰写配置,例如 default 和 dev。 可以在一个管道中使用多个应用程序配置任务来实现此方案。 任务在后面步骤中提取的键值将取代前面步骤中的所有值。 在上述示例中,可以使用一个任务来选择具有 default 标签的键值,而第二个任务可以选择具有 dev 标签的键值。 具有 dev 标签的键将替代具有 default 标签的相同键。

下一步

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

若要了解如何将键值从配置文件导入到应用程序配置存储中,请继续阅读以下文档。

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