使用存储在 Azure 管道中另一个变量中的变量名称



我正在使用AzureKeyVault任务从密钥保管库中检索机密。密钥的名称是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

因此,它似乎确实解决了内部变量,但仍然失败。

我也努力完成这项工作,这对我有用:

steps:
- task: AzureKeyVault@1
inputs:
azureSubscription: ${{ parameters.azureSubscription }}
KeyVaultName: ${{ parameters.azureKeyVaultName }}
SecretsFilter: '*'
RunAsPreJob: true
- bash: |
#I can now use ${GCP_CREDS}
displayName: GCP auth
env:
GCP_CREDS: $(${{ parameters.azureKeyVaultCredentailsKey }})

尝试使用:

--account-key $(StorageAccountKey)

从"Azure 密钥保管库任务"文档:

值以字符串形式检索。例如,如果存在名为 connectionString 的机密,则会使用从 Azure 密钥保管库提取的相应机密的最新值创建任务变量 connectionString。然后,此变量在后续任务中可用。

因此,如果访问 Azure 密钥保管库中名为"StorageAccountKey"的机密,则 Azure DevOps 会从此位置创建名为"StorageAccountKey"的变量。

相关内容

  • 没有找到相关文章

最新更新