AzureDevOps - YML - 如何将部署作业输出变量与 VM 资源一起使用



我有一个有两个虚拟机的环境,带有"SQL"和"APP"的标记,我想让部署作业针对 SQL 虚拟机并具有步骤,创建一个输出变量,另一个针对"APP"的部署作业 VM 应该能够在其步骤中使用它

参考文档

使用变量的作业应使用类似 -

$[dependencies.<job-name>.outputs['<lifecycle-hookname>_<resource-name>.<step-name>.<variable-name>']]

假设您拥有名为"env-vm"的环境

env-vm 有两个向其注册的虚拟机,带有标记 SQL 的 vm1 和带有标记 APP 的 vm2。 有关如何从部署作业生成和使用输出变量的信息,请参阅以下示例

jobs:
- deployment: producer
environment:
name: env-vm
resourceType: VirtualMachine
tags: SQL
strategy:
runOnce:
deploy:
steps:
- script: echo "##vso[task.setvariable variable=myOutputVar;isOutput=true]this is the deployment variable value"
name: setvarStep
- script: echo $(setvarStep.myOutputVar)
name: echovar
- deployment: consumer_deploy
dependsOn: producer
variables:
myVarFromDeploymentJob: $[ coalesce(dependencies.producer.outputs['deploy_Vm1.setvarStep.myOutputVar'], 'fubar') ]
environment: 
name: env-vm
resourceType: VirtualMachine
tags: APP
strategy:
runOnce:
deploy:
steps:
- script: "echo $(myVarFromDeploymentJob)"
name: echovar 

最新更新