首页 > 解决方案 > 环境中不支持将标签作为变量

问题描述

在使用环境模板执行部署作业时,我试图使用变量作为标记。但是从https://developercommunity.visualstudio.com/content/problem/1015274/yaml-variable-names-not-expanded-for-tags-on-envir.html,很明显 ADO 不支持变量作为标签环境部署。例如,这有效

   variables:
      envName: 'EnvironmentName'
      vmTag: 'vm-test-01'
   environment: 
     name: "EnvironmentName"
     resourceName: 'vm-test-01'
     resourceType: "virtualMachine"
     tags: "vm01"
   strategy:
     runOnce:
        deploy:
          steps:
             - powershell: write-host "This is $(VMName)"

但这不是

     name: "$(envName)"
     resourceType: "virtualMachine"
     tags: "$(vmTag)"
   strategy:
     runOnce:
        deploy:
          steps:
             - powershell: write-host "This is $(VMName)"

有谁知道这个的替代或解决方法?

谢谢

更新:这是我尝试过的

多级管道.yml

- stage: "deploytouservm"
      displayName: "Stage - Deploy To User VM"
      dependsOn: "build"
      variables:
              - name: envName
                value: "environmentName"
              - name: userVM
                value: "vmName01" #this value is dynamically generated
              
      - template: templates\jobs\deploy-template.yml
              parameters:
                     envName: $(envName)
                     vmName: $(userVM)

部署模板.yml

parameters:
    - name: envName
    - name: vmName
jobs:
    - deployment: "deployJob"
      environment: ${{ parameters['envName']}}.${{ parameters['vmName']}}
      displayName: "Deploy - SCOM To User VM"
      strategy:
          runOnce:
              deploy:
                  steps:

标签: azure-devopsyaml

解决方案


尝试使用参数而不是变量:

parameters:
- name: envName
  default: EnvironmentName
jobs:
- deployment: VMDeploy
  displayName: Test_script
  environment:
    name: ${{ parameters.envName}}
    resourceType: VirtualMachine

azure-pipelines.yml

stages:
- stage:
  variables:
    EnvironmentName: Prod
  jobs:
  - template: steps.yml
    parameters:
      myParameter: Test
....

steps:yml
parameters:
- name: myParameter
jobs:
- deployment: deployment

  environment: ${{ parameters['myParameter']}}
  strategy:
  ...

推荐阅读