[英]Variable inside variable Azure Pipelines
我在使用 Azure Vault 存储我的秘密和 .properties 文件来存储秘密名称时遇到问题(因此它不会在管道中进行硬编码)并稍后从 Azure DevOps 管道访问它:.properties 文件:
...
SERVER_ADMIN_SECRET_NAME=server-password-test
...
我正在使用模板管道读取文件并将所有 key=values 导出为 $(property) 并将相应的值作为全局属性( ##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))
...
这对我有用,请参阅最后一行的线索:
variables:
azureSubscription: 'my-subscription'
azureKeyVault: 'my-keyvault'
testkv: $(SERVER_ADMIN_SECRET_NAME)
jobs:
- job: TestKeyVault
displayName: Key Vault access
continueOnError: true
steps:
- task: AzureKeyVault@1
inputs:
azureSubscription: ${{ variables.azureSubscription }}
KeyVaultName: ${{ variables.azureKeyVault }}
SecretsFilter: ${{ variables.testkv }}
RunAsPreJob: true
- task: CmdLine@2
inputs:
script: 'echo $(${{ variables.testkv }}) > secret.txt'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.