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

如何仅使用Agent Pool代理而非Environment代理运行部署任务

最佳实现方案:用Agent Pool替代Environments部署任务

要替代原Environments在多台机器上并行执行步骤的效果,推荐用矩阵策略(matrix)+ Agent Pool标签筛选的组合方案,这比each循环更简洁,且原生支持高效的并行调度,完全脱离部署任务和Environments依赖。

核心步骤

1. 配置Agent Pool机器标签

确保目标机器已加入指定Agent Pool,并且给这些机器添加Active标签(和原Environments的tags逻辑对齐),后续通过标签筛选目标机器。

2. 编写替代的YAML任务

场景1:动态筛选带标签的机器(对应原Environments的tags: Active)

这个方案适合机器数量不固定、需要动态筛选的场景,和原逻辑完全匹配:

jobs:
- job: Job_Start_Installation
  displayName: Start Installation
  cancelTimeoutInMinutes: 1
  # 从指定Agent Pool中筛选带Active标签的机器
  pool:
    name: YourAgentPoolName  # 替换成你的Agent Pool名称
    demands:
      - Active -equals True  # 匹配机器上的Active标签
      # 可选:添加OS等其他筛选条件,比如 Agent.OS -equals Windows
  # 配置并行执行的数量,可根据机器总数调整
  strategy:
    parallel: 10
  steps:          
  - template: '../Steps/StartInstallation.yml'

场景2:指定具体机器执行(适合机器数量固定的场景)

如果需要明确指定执行的机器列表,用matrix枚举机器名称:

jobs:
- job: Job_Start_Installation
  displayName: Start Installation
  cancelTimeoutInMinutes: 1
  strategy:
    # 枚举目标机器名称
    matrix:
      VM_001:
        targetAgent: 'VM-001'
      VM_002:
        targetAgent: 'VM-002'
      VM_003:
        targetAgent: 'VM-003'
    # 设置并行执行的最大数量
    parallel: 3
  pool:
    name: YourAgentPoolName
    # 筛选出指定名称的Agent
    demands:
      - Agent.Name -equals $(targetAgent)
  steps:          
  - template: '../Steps/StartInstallation.yml'

方案优势

  • 原生并行支持:矩阵/并行策略是Azure Pipelines原生功能,调度效率比手动each循环更高,稳定性更好
  • 逻辑对齐:标签筛选的方式和原Environments的tags逻辑保持一致,无需调整业务步骤
  • 完全脱离依赖:用普通job替代deployment类型,不再依赖Environments的部署任务特性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 00:02:16