【问题标题】:Removing unnecessary parameters from VSTS task group从 VSTS 任务组中删除不必要的参数
【发布时间】:2017-12-19 12:14:35
【问题描述】:

我有一个任务组,其中除了其他任务之外还包含 Azure Key Vault 任务和 Azure 资源组部署任务。在后者中,我想用来自密钥库的值覆盖 ARM 模板中的一些参数。

Azure Key Vault 任务中的 Secrets filter 字段类似于 secret1,secret2,secret3。这些秘密可用作其他任务中的变量,其名称与秘密名称相同。因此,Azure 资源组部署 任务中的覆盖模板参数 字段的值为-p1 $(secret1) -p2 $(secret2) -p3 $(secret3)

问题在于 VSTS 会自动选择三个变量作为任务组的参数。我不希望这种情况发生。这些变量将在任务组本身内设置和读出。它们就像类中的私有字段。

一种方法是删除 Azure Key Vault 任务并改用 Build and Release > Library > Variable groups。但是没有办法将变量组链接到任务组。

【问题讨论】:

  • 即使从任务组中删除 Azure Key Vault 任务,仍然可以使用机密变量(如果任务在任务组之前)。您是什么意思无法将变量组链接到任务组?如果您已经将变量组链接到构建定义,您还可以使用任务组中的变量。
  • 编辑发布定义。转到变量 -> 变量组。在那里,您可以链接变量组并使用它们。任务组没有这样的方法。但是,我想从任务组中删除额外的参数 secret1、secret2 和 secret3。导出任务组、编辑 json(删除不需要的输入)和再次导入任务组也不起作用。

标签: azure-devops azure-pipelines-build-task


【解决方案1】:

我认为没有办法从任务组的参数中删除变量。这与 VSTS 如何处理任务组内的变量的内部工作方式有关。博客文章VSTS/TFS: Understanding Task Groups and its various use cases with setvariable logging command 提供了一些关于任务组内变量如何表现的见解。在同一篇博文中,有一个我想要实现的解决方法。

任务组将具有三个附加参数secret1、secret2 和secret3。当我将任务组添加到发布定义时,我必须填写以下值:

  • $(secret1) 用于参数 secret1
  • $(secret2) 用于参数 secret2
  • $(secret3) 用于参数 secret3

为减少错误并改善体验,您可以将这些值设置为任务组中参数的默认值。这样,您只需填写任务组所需的其余必需参数。

丑陋,但有效。

【讨论】:

    【解决方案2】:

    我遇到了同样的问题。我发现您可以通过将任务组导出到 JSON 文本文件并重新导入来删除不必要的参数(即变量组提供的参数)。

    只需在 notepad++ 或您最喜欢的 JSON 编辑器中编辑 JSON 文件,并在重新导入之前删除所有不必要的参数。导入后,它们就消失了。

    另外请注意,您可能可以以相同的方式添加新参数,但我还没有尝试过。

    【讨论】:

    • 随后在 UI 中编辑生成的任务组时必须小心。我注意到只需单击其中一个子任务就足以让 UI 再次引入不必要的参数。
    • @MarkHasper 有没有办法避免这种行为?任务组的重点是能够在一个地方进行更改,以使用任务组传播到许多管道。如果不再次引入不需要的参数,我找不到更改任务组的方法,迫使我重新创建任务组(通过 json)
    • @David.Jones - 我最近对其进行了测试,但仍然出现了不需要的参数。更糟糕的是,如果您添加 PowerShell 任务并内联添加脚本,它也会获取 PowerShell 脚本中的所有参数。基本上,我们一起避免这个特性。多么棒的概念,但由于无法使用而造成极大的浪费。
    【解决方案3】:

    您可以使用称为 visibleRule 的东西来做到这一点。 基本上是导出任务组,在json中编辑并添加

    可见规则:1 = 2

    或任何不真实的东西。 有关其他详细信息,请参见此处: https://medium.com/objectsharp/how-to-hide-a-task-group-parameter-b95f7c85870c

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多