【问题标题】:How to access value from a Object using a dynamic key in Yaml如何使用 Yaml 中的动态键访问对象中的值
【发布时间】:2022-01-07 13:17:22
【问题描述】:

我的yaml配置如下:

parameters:
  group: '$(group)'
  acl:
    certificateFile: AclCertificates.p12 
    provisioningProfileFile: AmericashDisProfile.mobileprovision
    keystore: 'acl.jks'
  sail:
    certificateFile: AclCertificates.p12 
    provisioningProfileFile: AmericashDisProfile.mobileprovision
    keystore: 'acl.jks'
steps:
- bash: |
    echo ${{ parameters[$(group)]['certificateFile'] }}

我想使用动态键访问对象值。这里group: '$(group)' 是来自另一个var 文件的动态值。 我尝试了一种访问对象值的方法,例如${{ parameters[$(group)]['certificateFile'] }},但它不起作用。我无法弄清楚我应该如何在echo ${{ parameters[$(group)]['certificateFile'] }} 中传递参数group 以获得特定对象的值。

【问题讨论】:

    标签: yaml azure-pipelines


    【解决方案1】:

    例如,您有一个 YAML 管道 A:

    parameters:
    - name: test
      type: object
      default:
        - name: Name1
          path: Path1
        - name: Name2
          path: Path2
    
    variables:
       sth: ${{ join(';',parameters.test.*.name) }}
    

    然后你可以使用 YAML 管道 B 来获取对象值:

    variables:
    - template: azure-pipelines-2.yml  # Template reference
    
    steps:
    - task: CmdLine@2
      inputs:
        script: 'echo "${{variables.sth}}"'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-10
      • 2011-10-18
      • 2018-05-30
      • 2022-10-14
      • 2021-11-27
      • 1970-01-01
      • 1970-01-01
      • 2020-06-26
      相关资源
      最近更新 更多