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

Variables 解析多个变量组中的Azure YAML管道重叠变量名,variables,azure-devops,yaml,azure-pipelines,Variables,Azure Devops,Yaml,Azure Pipelines,我们正在将经典的Azure管道转换为YAML管道。有一件事还不清楚,那就是如何确保两个不同的变量组,它们的变量名称相同,但含义不同,不会相互影响 例如,如果我有变量组vg1和vg2,每个变量名为secretDataDestination,如何确保在YAML管道中使用正确的secretDataDestination 一个更令人担忧的例子是,如果我们最初有两个变量组而没有重叠的变量名,那么如何确保向组中添加一个新的重叠变量名不会取代最初预期的变量使用 如果我有变量组vg1和vg2,每个变量都名为se

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

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

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

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

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

当您在同一管道中的不同变量组中使用相同的变量名时,正如Matt所说

“您可以在同一管道中引用多个变量组。如果 多个变量组包括同一个变量,变量组 YAML文件中最后包含的内容将设置变量的值。

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

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

如果我们最初有两个变量组,没有重叠的变量 名称,我们如何确保添加一个新的重叠变量名 对一个组来说,这并不能代替原来预期的变量的使用吗

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

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

作为解决方法,最简单、最直接的方法是在“库”选项卡中打开管道链接的变量组,然后直接使用
ctrl
+
F
搜索是否存在相同的变量


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

您阅读了吗?“您可以在同一管道中引用多个变量组。如果多个变量组包含同一个变量,则YAML文件中最后包含的变量组将设置变量的值。”这很有帮助。我们目前没有重叠的问题。然而,随着更多管道的开发,我们很有可能不得不采取一些措施来防止它。一个潜在的问题场景刚刚浮现在脑海中。重叠的变量名可能是威胁向量。具有编辑变量组能力的开发人员可以添加重叠的“secretDataDestination”以过滤数据。我们的审计人员不会太喜欢这种可能性。您关于使用variablegroups REST API的建议可能正是我们需要的。如果该功能可以内置并作为管道运行时检查使用,肯定会有所帮助。:-)@GaTechThomas,是的,内置功能将非常棒!我将此请求提交给产品团队,您可以投票并添加您的评论。我已经离开办公室。很快就会赶上。
variables:
- group: variable-group1
- group: variable-group2