我正在使用AzureKeyVault
任务从Key Vault中检索秘密。机密的名称为StorageAccountKey
。此名称存储在变量KeyName
中。我就是这样
- task: AzureKeyVault@1
displayName: 'Get key'
name: GetKey
inputs:
azureSubscription: '${{ parameters.azureSubscription }}'
KeyVaultName: '$(KeyVaultName)'
SecretsFilter: '$(KeyName)'
现在,在后续任务中,我想访问该秘密。 假设秘密名称本身存储在变量中,我该怎么做?以下似乎不起作用
- task: Bash@3
displayName: Create container
inputs:
targetType: 'inline'
script: |
az storage container create \
--name raw \
--account-name storageaccountname \
--account-key $($(dataLakeAccountKeyKeyName))
failOnStderr: true
我遇到错误
/mnt/azp/azp-linux1_5/_temp/6719378a-b3ee-45d8-aad8-4f6a5e8b581e.sh: line 1: StorageAccountKey: command not found
ERROR: az storage container create: error: argument --account-key: expected one argument
因此,它似乎可以解析内部变量,但仍然失败。
答案 0 :(得分:0)
尝试使用--account-key $ {StorageAccountKey)
来自“ Azure Key Vault任务”文档。
“值将作为字符串检索。例如,如果存在一个名为connectionString的机密,则会使用从Azure密钥保管库获取的相应机密的最新值创建任务变量connectionString。然后,此变量可用于后续任务。 “
因此,如果您访问在天蓝色的密钥保管库“ StorageAccountKey”中命名的机密,则Azure DevOps从该位置变量创建“ StorageAccountKey”。
我从未使用过Azure Key Vault,但希望它能对您有所帮助:)