首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >参数是否可以在一个YAML文件中定义并在另一个文件中重用?

参数是否可以在一个YAML文件中定义并在另一个文件中重用?
EN

Stack Overflow用户
提问于 2021-05-05 06:31:17
回答 1查看 1.3K关注 0票数 1

TL;DR

在准备运行管道时,是否可以在模板YAML中包含参数及其值,并让主YAML读取列表并在下拉列表中显示它们?

与MS的“变量重用”示例非常相似,如here所示。

代码语言:javascript
复制
# File: vars.yml
variables:
  favoriteVeggie: 'brussels sprouts'
代码语言:javascript
复制
# File: azure-pipelines.yml

variables:
- template: vars.yml  # Template reference

steps:
- script: echo My favorite vegetable is ${{ variables.favoriteVeggie }}.

详细信息

我有一个大约50个值的列表,这些值每周都在增长。当运维人员运行我的管道时,我希望他们从下拉列表中选择一个值。

这可以通过在管道YAML文件(azure-pipeline.yml)中指定一个参数块来实现:

代码语言:javascript
复制
parameters:
- name: subscription
  displayName: Subscription Name
  type: string
  default: sub A
  values:
  - sub A
  - sub B
  - sub C
  - sub D

这给出了UI中的下拉列表:

在我上面的例子中,只有四个值,然而,我们有超过50个值(订阅)并且还在增长。我正在尝试设计一种方法,使运维人员不必编辑管道,2)保持主管道文件的简洁性。

我知道目前还没有办法动态填充值列表,但我正在考虑使用一个只包含值的模板YAML文件,它将读取模板,填充下拉列表。然后,让脚本/管道动态更新模板文件中的值,这是一个相当简单的任务。

阅读文档和一些博客,我相信这可能是可能的,但我还没有设法破解它。

参数块似乎可以接受“任何YAML结构”,尽管我还没有找到一个合适的例子。在其他事情中,这是我尝试过的:

模板/订阅.yml

代码语言:javascript
复制
- name: subscription
  displayName: Subscription Name
  type: string
  default: sub A
  values:
  - sub A
  - sub B
  - sub C
  - sub D``

azure-pipelines.yml

代码语言:javascript
复制
...
template: templates/subscriptions.yml
  parameters:
    subscription: []

stages:
- stage: Example
  displayName: 1.0 Demo Stage
  jobs:
...

我想知道我的问题是不是我需要在一开始就读取参数,而这是不受支持的。它只适用于阶段/作业等。

如果任何人有任何想法,如果你能给我指明正确的方向,我将不胜感激。

T.I.A.

EN

回答 1

Stack Overflow用户

发布于 2021-05-06 11:01:53

根据你方的要求,恐怕目前还没有能满足你方要求的方法。

Azure Devops中的yaml模板需要由主yaml(例如azure-pipelines.yml)引用才能传递该值。

请参考此文档:Yaml schema

yaml中的参数字段无法调用YAML中的参数模板。因此,如果仅定义纯参数,则无法在主yaml中调用它们。

此方法仅受变量支持。

但是你的需求是有意义的。我建议你可以用Our UserVoice Site提交一份建议单。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67393008

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档