У меня проблема с использованием Azure Vault для хранения моих секретов и файла .properties для хранения секретного имени (чтобы оно не было жестко задано в конвейере) и доступ к нему позже из Azure DevOps Pipeline: .properties файла :
...
SERVER_ADMIN_SECRET_NAME=server-password-test
...
Я использую конвейер шаблонов, который читает файл и экспортирует все значения ключа = как $ (свойство) с соответствующим значением как глобальное свойство (##vso[task.setvariable variable=$KEY]$VAL
).
Когда я вызываю Azure Key Vault, он возвращает имя ключа и переменную экспорта $(server-password-test)
, чтобы его можно было использовать позже. Однако я не могу получить к нему доступ, потому что имя переменной является значением другой переменной $(SERVER_ADMIN_SECRET_NAME)
. Решение должно использовать переменную внутри переменной $($(SERVER_ADMIN_SECRET_NAME))
, но это не работает в Azure Конвейерах.
Мой конвейер выглядит так:
...
- template: read_properties.yml
parameters:
file: config.properties
- task: AzureKeyVault@1
inputs:
azureSubscription: 'vault-service-connection'
KeyVaultName: 'test-playground'
SecretsFilter: '$(SERVER_ADMIN_SECRET_NAME)'
# TODO : How to fix this??
- task: CmdLine@2
inputs:
script: |
echo $($(SERVER_ADMIN_SECRET_NAME))
...
Диаграмма: