Azure管道输出变量task.setvariable没有为变量分配任何值

时间:2020-05-04 09:13:25

标签: azure-pipelines

我试图执行terraform脚本来创建ec2,并使用输出变量的概念,我想获取ec2公共ip并将其分配给变量并将其传递给另一个任务。但是我看到使用bash或脚本的输出变量在azure管道yml中不起作用。我正在使用Ubuntu代理。

  • 脚本:COMMAND = $(cat terraform.tfstate | grep'public_ip“'| cut -d”:“ -f2 | cut -d'”'-f2)&& echo“ ## vso [task.setvariable variable = ec2ip;] $ COMMAND“ && echo $ ec2ip 但我认为印刷毫无价值。不确定task.setvarible是否正常工作。 需要一些帮助来解决此问题。

1 个答案:

答案 0 :(得分:0)

您不能在同一脚本任务中回显新变量的值。语句task.setvariable设置的新变量仅在后续任务中可用。

您可以添加后续脚本任务以回显变量ec2ip。然后通过将其包装在$()(即$(ec2ip))中来检索其值。请查看文档Define vairables,以了解更多信息。

- script: COMMAND=$(cat terraform.tfstate | grep 'public_ip"' | cut -d":" -f2 | cut -d'"' -f2) && echo "##vso[task.setvariable variable=ec2ip;]$COMMAND" 


- script: echo "$(ec2ip)"