我在Azure DevOps中使用变量组来存储常规变量和“秘密”变量
我以前经常在代理程序的环境变量中看到常规变量和“秘密”变量(秘密值用*****掩盖)
今天我发现代理的环境变量中不再存在秘密变量
我是唯一遇到它的人吗?有解决方法吗?
答案 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)
使用秘密之前,必须先将秘密的名称映射到环境变量。
改编的示例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