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

如何在Azure发布管道的阶段间共享ARM输出?

Azure DevOps跨阶段传递ARM输出的实现步骤

1. 阶段1:将ARM输出转为跨阶段可访问的变量

在阶段1的ARM Output任务中配置输出变量:

  • 编辑该任务,找到「Output variables」区域
  • 为需要传递的ARM输出项勾选「Set as pipeline variable」,并指定变量名(例如storageAccountName),这样输出值会被保存为管道级变量
  • 若需要传递多个输出,重复上述操作给每个输出设置独立变量

2. 确认阶段依赖关系

在发布管道的阶段设置中,确保阶段2的「Depends on」选项已选中阶段1,保证阶段2在阶段1执行完成后启动,确保变量已生成。

3. 阶段2:在ARM模板中引用传递的变量

在阶段2的ARM模板部署任务中,通过以下方式引用变量:

  • 参数传递法:先在ARM模板里定义对应参数,然后在部署任务的「Override template parameters」中,用-TargetParameterName $(storageAccountName)的格式传入变量值
  • 直接引用法:如果模板支持管道变量,可直接在模板里用[variables('storageAccountName')]引用,或者在部署任务的「Additional parameters」中指定变量

备选方案(手动设置输出变量)

如果ARM Output任务无法直接设置管道变量,可添加一个PowerShell/Bash任务来处理:

  • 在阶段1的ARM Output任务后添加PowerShell任务,通过$(armOutputTaskReferenceName.outputName)获取输出值(armOutputTaskReferenceName是ARM Output任务的「Reference name」)
  • 执行命令:echo "##vso[task.setvariable variable=crossStageVar;isOutput=true;]$outputValue",将值设为作业输出变量
  • 阶段2中通过$(阶段1.作业名.crossStageVar)的格式访问该变量

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 18:24:42