【发布时间】:2020-10-14 17:13:21
【问题描述】:
我在 Azure DevOps 中使用变量组来存储常规和“秘密”变量
我曾经在代理的环境变量中看到常规变量和“秘密”变量(秘密值的值被 ***** 屏蔽)
今天我发现代理的环境变量中不再存在秘密变量
我是唯一一个面对它的人吗?有什么解决方法吗?
【问题讨论】:
标签: azure-devops
我在 Azure DevOps 中使用变量组来存储常规和“秘密”变量
我曾经在代理的环境变量中看到常规变量和“秘密”变量(秘密值的值被 ***** 屏蔽)
今天我发现代理的环境变量中不再存在秘密变量
我是唯一一个面对它的人吗?有什么解决方法吗?
【问题讨论】:
标签: azure-devops
根据this doc:
与普通变量不同,它们不会自动解密为 脚本的环境变量。您需要明确映射秘密 变量。
根据我的测试,我还可以确认秘密变量没有出现在环境变量中。
您可以使用$(secretvariable) 格式调用秘密。
如果你还想把secret变量设置为环境变量,可以使用environemt脚本来实现。
例如:
- task: PowerShell@2
inputs:
targetType: 'inline'
script: 'Write-Host "##vso[task.setvariable variable=variablename;]$(test3)"'
说明:
$(test3) 是秘密变量。您可以将秘密变量(test3)设置为新的环境变量(变量名)。
那么你可以使用$env:variablename来调用环境变量。
希望这会有所帮助。
【讨论】:
echo $(secret_var) 在内联模式下工作
您必须先将密钥的名称映射到环境变量,然后才能使用它。
示例改编自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
【讨论】: