你当前正在访问 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 资源管理器”。

    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. 选择“查看 + 分配”。

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

在生成中使用

本部分介绍如何在 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 in the search box.
  3. 配置任务的必要参数,以便从应用程序配置存储中拉取键值。 参数说明在下面的“参数”部分以及每个参数旁边的工具提示中提供。
    • 将“Azure 订阅”参数设置为你在前面步骤中创建的服务连接的名称。
    • 将“应用程序配置终结点”设置为应用程序配置存储的终结点。
    • 保留其余参数的默认值。 Screenshot shows the app configuration 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 应用程序配置”任务。 Screenshot shows the Add Task dialog with Azure App Configuration in the search box.
  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 标签的相同键。