如何在 Azure 管道 (VSTS) 中使用 Deploy to Kubernetes 任务的输出变量

How*_*osh 4 kubernetes azure-devops azure-pipelines azure-pipelines-release-pipeline

我是 VSTS 和 Azure Kubernetes 的新手。我正在构建一个 VSTS CD 管道。我在我的管道中添加了一个 Deploy to Kubernetes 任务。我正在执行 get 命令并尝试将输出存储在输出变量中(可在 Deploy to kubernetes 任务的底部找到)。我已经设置了变量名。

VSTS 输出变量

我正在尝试获取上述输出变量的值。我已经使用命令行任务为变量设置了一个值,如下所述

echo '##vso[task.setvariable variable=myStatusVar;isSecret=false;]$(myvar)'

其中myvar是变量,在Deploy to kubernetes任务中设置为输出变量。

之后,在另一个命令行任务中,我尝试访问myStatusVar变量值,但是当我执行发布管道时,它显示以下消息:

未找到 myvar 命令

谁能告诉我,如何使用 VSTS 管道的 Deploy to kuberentes 任务的输出变量?

小智 5

如评论中所述,您的变量“公开”为“myvar.KubectlOutput”

您能够在脚本中使用它的方式因您正在执行的脚本类型而异:

  • 批处理脚本:%MYVAR_KUBECTLOUTPUT%
  • PowerShell 脚本:$env:MYVAR_KUBECTLOUTPUT
  • Bash 脚本:$MYVAR_KUBECTLOUTPUT
  • Azure Devops '设计器视图':$(myvar.KubectlOutput)

有关更多详细信息,请参阅有关在 Azure DevOps 中使用变量的文档:https ://docs.microsoft.com/en-us/azure/devops/pipelines/process/variables ? view = azure-devops & tabs = yaml%2Cbatch

  • 请记住,MYVAR_KUBECTLOUTPUT 必须为大写。我忽略了这个案例(也没有仔细阅读文档),花了 20 分钟摸不着头脑! (2认同)