You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为YAML流水线各环境配置特定Agent.Name(dev/sandbox复用)

解决YAML流水线环境与Agent.Name的匹配配置问题

你可以通过条件变量赋值来实现不同环境对应指定Agent.Name的需求,核心思路是根据选择的env参数动态生成对应的Agent名称,具体修改后的YAML代码如下:

pool:
  vmImage: 'linux'

trigger: none

parameters:
  - name: env
    values:
      - dev
      - sandbox
      - int
      - preprod
      - prod
    type: string
    displayName: "Environment"

variables:
  # 根据环境参数动态设置Agent.Name
  ${{ if in(parameters.env, 'dev', 'sandbox') }}:
    agentName: agent-dev
  ${{ else }}:
    agentName: agent-${{ parameters.env }}

stages:
  - stage: Configure${{ upper(parameters.env) }}
    displayName: "Configure Resources in ${{ parameters.env }}"

    jobs:
      - job: Configure_${{ upper(parameters.env) }}
        pool:
          name: Project-Linuxpool
          demands:
            - Agent.Name -equals ${{ variables.agentName }}

关键说明:

  • 在variables区块中使用Azure DevOps的模板表达式${{ if }}进行条件判断:
    • 当选择的环境是dev或sandbox时,统一设置agentName为agent-dev
    • 其他环境直接使用agent-加上环境名称的格式生成对应Agent.Name
  • 在job的demands中直接引用生成好的agentName变量,确保环境与Agent的正确匹配
  • 修复了原代码中displayName末尾缺失的闭合引号问题

内容的提问来源于stack exchange,提问作者Izzy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 19:12:05