Azure DevOps YAML中AzureCLI@2任务输出管道变量无法读取问题
问题根因
- AzureCLI@2任务设置的
thing变量无法读取,核心原因是该任务没有配置name属性。 - Azure DevOps流水线中,设置了
isOutput=true的输出变量,跨步骤引用时必须遵循$(任务名.变量名)的格式。你引用时写的是$(output.thing),但AzureCLI@2任务从未被命名为output——你只给它配置了界面展示用的displayName,这个属性不能作为变量引用的任务标识。 - 能正常读取的
thing2变量,对应的PowerShell任务显式配置了name: output2,和引用前缀完全匹配,所以可以正常输出。
修复方法
给AzureCLI@2任务添加name字段,值和你引用时用的前缀保持一致即可,修正后的任务配置:
- task: AzureCLI@2 name: output # 该字段为任务引用标识,必须和后续取值的前缀对应 displayName: 'output' inputs: azureSubscription: Subscription scriptType: 'pscore' scriptLocation: 'inlineScript' addSpnToEnvironment: true inlineScript: | echo "##vso[task.setvariable variable=thing;isOutput=true]thing"
配置完成后,原有$(output.thing)的写法就可以正常获取到变量值。
补充:如果后续需要跨作业、跨阶段引用该输出变量,deployment类型作业的引用格式需要额外拼接作业名、策略名层级;当前同作业同部署步骤内的引用,按上述配置即可生效。
内容的提问来源于stack exchange,提问作者Philosophene
相关产品推荐
相关产品推荐

