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

如何在ADO YAML中实现运行时添加管道需求?

在ADO YAML管道中实现排队时按需添加代理需求

实现方案

通过运行时参数结合条件化代理需求配置,就能让YAML管道支持排队时按需添加Agent.Name = 'abc'这类代理需求,无需修改管道YAML文件。

方式1:自由输入需求表达式

适合需要灵活输入任意需求的场景,比如指定代理名称、特定软件版本等:

parameters:
  - name: customAgentDemand
    type: string
    default: ''
    displayName: '自定义代理需求(格式示例:Agent.Name = ''abc'' 或 DotNetCoreVersion = ''6.x'')'

jobs:
- job: BuildAndTest
  pool:
    # 这里填你的默认代理池,比如自托管池名称或微软托管镜像
    name: 'MySelfHostedPool'
    demands:
      # 仅当用户输入了自定义需求时,才添加该条件
      - ${{ if ne(parameters.customAgentDemand, '') }}:
          - ${{ parameters.customAgentDemand }}

方式2:结构化指定代理名称

适合只需要指定特定代理名称的场景,操作更直观:

parameters:
  - name: useSpecificAgent
    type: boolean
    default: false
    displayName: '是否使用特定代理'
  - name: targetAgentName
    type: string
    default: ''
    displayName: '目标代理名称'
    # 只有勾选"使用特定代理"时,才显示该输入框
    condition: eq(parameters.useSpecificAgent, true)

jobs:
- job: BuildAndTest
  pool:
    name: 'MySelfHostedPool'
    demands:
      - ${{ if eq(parameters.useSpecificAgent, true) }}:
          - Agent.Name = '${{ parameters.targetAgentName }}'

操作流程

当你排队运行管道时:

  1. 在管道运行参数界面,找到对应的自定义参数
  2. 要么输入完整的需求表达式,要么勾选"使用特定代理"并输入代理名称
  3. 启动构建,管道会自动将需求附加到代理池的选择条件中

适用场景

  • 排查特定代理故障:如果某台代理上的构建反复失败,直接指定该代理名称重新运行构建,验证问题是否复现
  • 单代理升级测试:完成单台代理的软件(如.NET Core、Node.js)升级后,指定该代理跑构建,确认无问题后再全量升级所有代理

与经典管道的对比

经典管道无需修改管道配置,排队时就能直接在界面添加代理需求(在构建排队页的"代理需求"区域,可直接添加键值对形式的需求规则)。而YAML管道通过上述参数化配置,同样能实现无需修改YAML即可按需添加需求的效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 15:55:16