【问题标题】:Azure DevOps: Substitute variables with variablesAzure DevOps:用变量替换变量
【发布时间】:2019-09-25 13:45:32
【问题描述】:

我有Azure key vault,我在其中写了一组键

dev-key
stg-key
prd-key

现在我已经在azure DevOps pipeline 中下载了密钥dev-key。我想将下载的变量映射到名为 'key' 的“常量”变量,因为此变量正在部署 yaml 文件中使用(我在令牌替换步骤中替换此变量)

目前我正在将此变量映射到管道变量中,例如,

tenant: dev
key: $($(tenant)-key)

但是在部署 yaml 文件中设置的值是$(dev-key)。 我们可以用Azure DevOps中的变量替换变量吗?

【问题讨论】:

    标签: azure azure-devops azure-keyvault


    【解决方案1】:

    我已经通过将范围分配给变量来解决这个问题。

    variable     value              scope
    key         $(dev-key)           dev
    key         $(stg-key)           stg
    key         $(prd-key)           prd
    

    【讨论】:

      【解决方案2】:

      目前不支持解析嵌套变量。

      见:https://developercommunity.visualstudio.com/content/problem/479258/nested-release-variables-fail-to-be-recognized.html

      另一种解决方案是以下设置:

      • 有一个Key Vaultper 环境
      • 每个环境都有一个Stage
      • 每个Key Vault 中的键名始终相同
      • 将每个保管库链接到一个变量组
      • 将每个变量组链接到您的管道并分配一个Scope
      • Stage 的每个任务中访问Variable group 中声明的变量

      使用此配置,您可以在任务中重复使用相同的密钥,并且实际值由您定义的每个 Stage 的变量组的范围解析。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-05-16
        • 1970-01-01
        • 2021-01-19
        • 2021-07-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多