当前位置: 首页 > 知识库问答 >
问题:

解析多个变量组中的Azure YAML管道重叠变量名

潘星阑
2023-03-14

我们正在努力将经典Azure管道转换为YAML管道。有一件事不清楚,那就是如何确保两个不同的变量组,它们的变量名称相同,但含义不同,不会互相踩踏。

例如,如果我有变量组vg1vg2,每个变量名为secretDataDestination,如何确保在YAML管道中使用正确的secretDataDestination

一个更令人担忧的例子是,如果我们最初有两个变量组而没有重叠的变量名,那么如何确保向组中添加一个新的重叠变量名不会取代最初预期的变量使用?

共有1个答案

百里渊
2023-03-14

如果我有变量组vg1和vg2,每个变量都名为secretDataDestination,那么如何确保在YAML管道中使用正确的secretDataDestination?

无论我们使用经典模式还是YAML,都不建议在不同的变量组中定义具有相同名称的变量。因为当你在同一个管道中引用包含相同变量名的不同变量组时,你无法避免互相踩踏。

当你在同一个管道的不同变量组中使用相同的变量名时,就像马特说的那样,

"您可以引用同一管道中的多个变量组。如果多个变量组包含相同的变量,则YAMLhtml" target="_blank">文件中最后包含的变量组将设置变量的值。"

variables:
- group: variable-group1
- group: variable-group2

这意味着后面写入的变量组中的变量值将覆盖先写入的变量组中的变量值

我想你已经知道了,所以你发布了第二个问题。现在让我们谈谈第二个问题。

如果我们最初有两个没有重叠变量名的变量组,我们如何确保向组中添加新重叠的变量名不会像最初预期的那样替换变量的使用?

事实上,Azure devops目前没有这样的功能或机制来智能检测不同的变量组是否具有相同的变量名称,并给出提示。

我认为这是一个合理的要求,我在我们的UserVoice网站上添加您对该功能的要求,该网站是我们提供产品建议的主要论坛:

在变量组中检测相同变量的能力

作为解决方法,最简单直接的方法是在库选项卡中打开您的管道链接的变量组,直接ctrlF来搜索相同变量的存在。

另一种方法是使用REST API变量组-通过Id获取变量组来获取所有变量,然后循环与我们将要输入的变量进行比较,以确定是否存在相同的变量。

 类似资料:
  • 问题内容: 是否有任何环境变量可用于获取Jenkins管道标题? 我知道我们可以使用它来获得自由职业的头衔,但是有什么可以用来获取管道名称的东西吗? 问题答案: 您可以使用相同的名称(例如或)从groovy访问相同的环境变量。 从文档中: 可以从Groovy代码中以env.VARNAME或仅以VARNAME的形式访问环境变量。您也可以写入这些属性(仅使用env。前缀): 这些定义也将在构建期间或构

  • 出于某种原因,当我尝试运行这段代码时,它总是返回找不到符号。然后我发现问题是变量无法解析为变量。我不知道为什么它无法将其解析为变量。

  • 我正在使用bitbucket管道,在一个步骤中,我想调用curl请求我们的API来将部署数据保存在DB中。 但是当我试图用BITBUCKET_BRANCH和BITBUCKET_REPO_SLUG变量调用curl时,它们总是为空或者根本没有填充。 这是我从管道中得到的回复。 你可以看到,对于分支dev1/*,我有第一步,我用两个变量调用curl。我尝试了两种使用我在互联网上找到的变量的方法,但都不起

  • 我试图将两个值中的一个分配给变量组之外的变量,但找不到如何使用IF-ELSE的引用。 基本上,我需要将这个jerkins逻辑转换为azure DevOps。 詹金斯 我从下面的一个引用中找到了一个引用,但是如果变量部分没有变量组,那么这个引用似乎有效。 https://stackoverflow.com/a/57532526/5862540 但在我的管道中,我已经有了一个用于机密的变量组,因此我必

  • 我正在Azure DevOps Yaml管道中使用类型为“file”的Python脚本任务。我需要使用在Python文件的变量组中定义的变量。以下是我在Azure devops yaml管道上的任务。 有没有关于如何实现这一目标的建议? 谢谢!

  • 我在Azure DevOps中创建了三个变量组,其中包括三个变量: 网络应用开发 每个变量组都有一个名为环境的变量,其值被适当命名以与环境相对应。 我现在想做的是引用Azure Pipeline yaml文件中的每个环境变量。下面的屏幕截图描述了我当前如何在管道开发阶段引用变量组WebApp-DEV。 但是,我如何调用或引用每个变量组的环境值,正如上面对WebApp DEV的描述?换句话说,从变量