我想使用对象作为参数来触发作业模板。 不幸的是,即使基于示例,我也找不到解决方法。 如果有人可以指导我如何实现这一目标,我将不胜感激。
我要实现的是用动态变量替换 [“ DEPLOY”,“ CONFIG”] 部分:
- template: job-template.yaml
parameters:
jobs: ["DEPLOY", "CONFIG"]
答案 0 :(得分:1)
这是不可能的。 YAML在这里非常有限,您可以阅读有关此here
的更多信息Yaml变量始终是字符串:字符串映射。
例如,您可以将参数定义为复杂类型
模板文件
parameters:
- name: 'instances'
type: object
default: {}
- name: 'server'
type: string
default: ''
steps:
- ${{ each instance in parameters.instances }}:
- script: echo ${{ parameters.server }}:${{ instance }}
主文件
steps:
- template: template.yaml
parameters:
instances:
- test1
- test2
server: someServer
但是您无法动态/编程地执行此操作,因为您将创建的每个输出都将以简单的字符串结尾。
您可以做的是作为字符串传递,然后使用powershell将该字符串拆分。但这一切都取决于您要进一步执行什么操作,因为您将无法以这种方式简单地遍历yaml结构。您所能做的就是在powershell循环中运行并做一些事情,但这对您来说还不够。