Azure DevOps:无法从环境变量中的变量组获取秘密值

时间:2020-06-24 12:33:29

标签: azure-devops

我在Azure DevOps中使用变量组来存储常规变量和“秘密”变量

我以前经常在代理程序的环境变量中看到常规变量和“秘密”变量(秘密值用*****掩盖)

今天我发现代理的环境变量中不再存在秘密变量

我是唯一遇到它的人吗?有解决方法吗?

2 个答案:

答案 0 :(得分:1)

根据this doc

与普通变量不同,它们不会自动解密为 脚本的环境变量。您需要显式映射秘密 变量。

根据我的测试,我还可以确认秘密变量没有出现在环境变量中。

您可以使用$(secretvariable)格式来调用机密。

如果仍然要将机密变量设置为环境变量,则可以使用environemt脚本来实现它。

例如:

  - task: PowerShell@2
    inputs:
      targetType: 'inline'
      script: 'Write-Host "##vso[task.setvariable variable=variablename;]$(test3)"'

说明:

$(test3)是秘密变量。您可以将秘密变量(test3)设置为新的环境变量(变量名称)。

然后,您可以使用$env:variablename来调用环境变量。

希望这会有所帮助。

答案 1 :(得分:1)

使用秘密之前,必须先将秘密的名称映射到环境变量。

根据Microsoft docs

改编的示例
variables: 
- group: 'my-var-group' # variable group pretend it contains `user` and `token` variables. Token is secret

steps:
- task: PowerShell@2
  inputs:
    targetType: 'inline'
    script: |
      # use $Env:USER for user variable
      # use $Env:MY_MAPPED_TOKEN for secret token var that has been mapped in the `env` below
  env:
    MY_MAPPED_TOKEN: $(token) # Maps the secret variable $(token) from my-var-group