我正在将一些机密信息从Azure Key Vault导入到变量组中,以供CI / CD管道使用。
我能够使用Azure Devops UI从KeyVault将所需的机密映射到VariableGroup。
在我的管道YAML文件中,我能够读取和打印那些VariableGroup变量,它们是AzureKeyVault机密。
trigger:
- dev
# define the VM image
pool:
vmImage: "Ubuntu 16.04"
# define variables to use during the build
variables:
- group: SecretVarGroup # it has keyvault variable 'KV_API_KEY'
- group: PublicVarGroup # it has a variable 'API_CLIENTID'
# define the step to export key to env varaiable
steps:
- script: echo $MYSECRETAPIKEY
env:
MYSECRETAPIKEY: $(KV_API_KEY)
## Run the npm build
- script: |
npm run build
displayName: "npm build"
我能够在构建输出日志中以***值的形式看到“KV_API_KEY”密钥的价值,我认为它已经被使用了。我也能在构建日志中以及node js process.env对象中看到API_CLIENTID的值。
我本来以为变量“MYSECRETAPIKEY”将会在我的node js process.env对象中可用。但是它不可用。
测试的方法是,在我的node js项目构建配置中,我有一个打印语句,可以打印出process.env对象。它打印了管道构建代理的所有环境变量,包括我的PUBLICVARGROUP变量“API_CLIENTID”。但我没有在process.env对象中看到我的机密变量“MYSECRETAPIKEY”。
env:
MYSECRETAPIKEY: $(KV_API_KEY)
我曾以为上述代码会将变量导出到特定的语言进程环境中,但实际并非如此。我该如何解决这个问题?
MYSECRETAPIKEY
不可用的,以便我可以重现它。 - Krzysztof Madej