tru*_*tio 1 azure-devops azure-pipelines azure-pipelines-yaml
我试图从嵌套参数中获取值,如下所示:
parameters:
- name: myObject
type: object
default:
foo: FOO
things:
- one
nested:
one: apple
count: 3
Run Code Online (Sandbox Code Playgroud)
所以我期望写这样的东西${{ parameters.myObject.foo }}或${{ parameters.myObject.nested.one }}检索一个值。
还有一个循环遍历列表对象的示例,如下所示:
- name: listOfStrings
type: object
default:
- one
- two
steps:
- ${{ each value in parameters.listOfStrings }}:
- script: echo ${{ value }}
Run Code Online (Sandbox Code Playgroud)
这就是为什么我试图以这种方式获得价值,但它对我来说也不起作用:
- name: myObject
type: object
default:
foo: FOO
nested:
one: apple
steps:
- ${{ each value in parameters.myObject }}:
- script: echo ${{ value.foo }}
Run Code Online (Sandbox Code Playgroud)
不幸的是,微软没有在文档中提供示例https://learn.microsoft.com/en-us/azure/devops/pipelines/process/templates?view=azure-devops
有人可以建议如何检索嵌套值吗?
小智 6
该对象包含嵌套对象和数组,您可以使用以下代码:
parameters:
- name: myObject
type: object
default:
foo: FOO
bar: BAR
things:
- one
- two
- three
nested:
one: apple
two: pear
count: 3
trigger: none
jobs:
- job: object
steps:
- bash: echo ${{parameters.myObject.foo}} # echo object foo value
- bash: echo ${{parameters.myObject.things[1]}} # echo one specific string value in array.
- bash: echo ${{parameters.myObject.nested.two}} # echo nested object value
- ${{ each value in parameters.myObject.things }}: # echo every string value in array.
- script: echo ${{ value }}
- ${{ each pair in parameters.myObject.nested }}: # echo every nested object key and value
- script: echo "${{ pair.key }}, ${{ pair.value }}"
Run Code Online (Sandbox Code Playgroud)
您必须为“each”字符串指定嵌套对象(parameters.myObject.nested),因为您无法将对象(数组)转换为字符串以进行输出。
| 归档时间: |
|
| 查看次数: |
1827 次 |
| 最近记录: |