【问题标题】:In Azure DevOps is it better to use one variable group or multiple to split environmental variables?在 Azure DevOps 中,使用一个变量组还是多个变量组来拆分环境变量更好?
【发布时间】:2020-11-04 14:10:13
【问题描述】:

为跨多个环境的一件事创建变量组时,使用单个变量组还是多个变量组更好,为什么?

选项 1:每个环境一个变量组,具有相同名称的变量 可变组动物开发:

  • 变量A = "狗"
  • 变量B = "猫"

可变组动物产品:

  • 变量A = "鸡"
  • VariableB = "海豚"

选项 2:一个变量组用于所有环境,其中变量命名为与环境匹配 可变组动物:

  • VariableA.Dev = "狗"
  • VariableB.Dev = "猫"
  • VariableA.Prod = "鸡"
  • VariableB.Prod = "海豚"

选项 1 意味着更多的变量组,但意味着跨环境的所有变量共享相同的名称,并且还允许您将可用变量限制在管道中的较小范围内。 选项 2 意味着所有变量都包含在一个可能更清洁的组中。

【问题讨论】:

    标签: azure azure-devops


    【解决方案1】:

    我们使用选项 1。

    这允许您在不同阶段重用管道模板。您所要做的就是在 stage.job 中加载所需的变量组。

    例子:

    # azure-pipeline.yml
    stages:
    - stage: DEV
      variables:
      - group: DEV
      jobs:
      - job: Test
        steps:
        - script: echo $(VariableA)
    - stage: PROD
      variables:
      - group: PROD
      jobs:
      - job: Test
        steps:
        - script: echo $(VariableA)
    

    【讨论】:

    • 请注意,如果您在同一范围内加载两个组,那么由于变量具有相同的名称,因此只有其中一个值(例如 DEV group VariableAPROD group VariableA 将被分配为 @ 987654324@) 将被使用,不会有警告信息
    【解决方案2】:

    变量组旨在提供一种跨管道共享变量的简单方法,对吗?因此,为了更好地完成所有工作,请将 env 变量保存在单独的变量组中,因为这样您可以在所有阶段/管道中保持相同的名称(我不知道您如何组织管道)。但是,如果你这样做:

    开发人员:

    VariableA = "Dog"
    VariableB = "Cat"
    

    可变组动物产品:

    VariableA = "Chicken"
    VariableB = "Dolphin"
    

    您将在不更改使用名称的情况下让 dev 和 prod 正常工作。

    它就像 Azure KeyVault,最好是每个环境都有一个,而不是所有环境都有一个。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-24
      • 2020-04-02
      • 2020-01-15
      • 2019-05-17
      • 1970-01-01
      • 2022-01-12
      • 1970-01-01
      • 2020-10-14
      相关资源
      最近更新 更多