Azure DevOps:用变量替换变量

时间:2019-09-25 13:45:32

标签: azure azure-devops azure-keyvault

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

dev-key
stg-key
prd-key

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

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

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

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

2 个答案:

答案 0 :(得分:0)

当前不支持嵌套变量的解析。

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

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

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

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

答案 1 :(得分:0)

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

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