【问题标题】:Is it possible to mix map arguments in Azure Pipelines template yaml? How?是否可以在 Azure Pipelines 模板 yaml 中混合地图参数?如何?
【发布时间】:2021-01-13 12:42:05
【问题描述】:

我想知道是否可以在 Azure Pipelines 模板 yaml 中混合映射参数,以及如何做到这一点。

下面显示的这两个场景做同样的事情:将模板参数作为 env 参数放在任务中,但在第二个场景中,我试图通过两个映射而不是一个映射来完成。当我对这些值有不同的用途时(在扩展模板的人眼中),这可能很有用,但两者都将用作引擎盖下的“环境”。

这很好用:

主管道:

...

extends:
  template: templates/deploy/v1/deployment.job.yaml@infrastructure-templates
  parameters:
    name: dev
    variableGroup: 'AzureDevopsVariableGroupName'
    secretEnvVariables:
      SECRET1: ${SECRET1}       
      SECRET2: ${SECRET2}

目标模板:

parameters:
- name: secretEnvVariables
  type: object
jobs:
    ...
    steps:          
    - bash: |
        #!/bin/bash

        echo "SECRET1 = ${SECRET1}"
        ...              
      displayName: Substitute Env VARS on files
      enabled: true
      env: 
        ${{ parameters.secretEnvVariables }} 

这不起作用(我想知道是否可以使它起作用):

主管道:

...

extends:
  template: templates/deploy/v1/deployment.job.yaml@infrastructure-templates
  parameters:
    name: dev
    variableGroup: 'AzureDevopsVariableGroupName'
    secretEnvVariables:
      SECRET1: ${SECRET1}       
      SECRET2: ${SECRET2}
    moreVariables:
      VAR1: ${VAR1} 

目标模板:

parameters:
- name: secretEnvVariables
  type: object
- name: moreVariables
  type: object
jobs:
    ...
    steps:          
    - bash: |
        #!/bin/bash

        echo "SECRET1 = ${SECRET1}"
        echo "VAR = ${VAR1}"
        ...              
      displayName: Substitute Env VARS on files
      enabled: true
      env: 
        ${{ parameters.secretEnvVariables }} 
        ${{ parameters.moreVariables }} 

可以吗?怎么做?

【问题讨论】:

  • 这个问题怎么样?下面的答案是否解决了您的问题?

标签: azure azure-devops yaml azure-pipelines


【解决方案1】:

我正在做类似的事情,这没有很好的文档记录,但可以使用对象来适应。

这里是环境和区域部署的组合:

- name: environmentObjects
  type: object
  default: 
  - environmentName: 'dev'
    regionAbrvs: ['eus']
  - environmentName: 'uat'
    regionAbrvs: ['eus', 'cus']

从那里访问每一个都将是一个循环:

- ${{ each environmentObject in parameters.environmentObjects }} :
  - ${{ each regionAbrv in enviornmentObject.regionAbrvs }} :

这也应该适用于您的场景。

【讨论】:

    猜你喜欢
    • 2021-01-08
    • 2020-03-01
    • 2020-03-06
    • 2022-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-13
    • 2016-02-22
    相关资源
    最近更新 更多