Я импортирую некоторые секреты из Azure Key Vault в группу переменных в конвейер CI / CD.
Я могу сопоставить требуемые секреты в VariableGroup из KeyVault, используя Azure Devops UI.
В моем конвейере 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, напечатанное как значение *** в журнал вывода сборки, который, как я предполагаю, может потреблять. Я также вижу значение API_CLIENTID, напечатанное в журнале сборки, а также объект node js process.env.
Я предполагал, что переменная «MYSECRETAPIKEY» будет доступна в моем объекте node js process.env. Но это не доступно.
Я тестировал это в своей конфигурации сборки проекта node js. У меня есть оператор печати, который печатает объект process.env. Он распечатал все переменные среды агента построения конвейера, включая мою переменную PUBLICVARGROUP «API_CLIENTID». Но я не вижу свою секретную переменную MYSECRETAPIKEY в объекте process.env.
env:
MYSECRETAPIKEY: $(KV_API_KEY)
Я думал, что строка выше будет экспортировать переменную в указанную среду языкового процесса c. Но это не так. Как я могу это исправить?