变量 Azure Pipelines 内的变量

Fil*_*iko 3 azure azure-devops

我在使用 Azure Vault 存储我的机密和 .properties 文件来存储机密名称(因此它没有在管道中硬编码)并稍后从 Azure DevOps Pipeline 访问它时遇到问题:.properties 文件:

...
SERVER_ADMIN_SECRET_NAME=server-password-test
...
Run Code Online (Sandbox Code Playgroud)

我正在使用模板管道,它读取文件并将所有 key=values 导出为 $(property),相应的值作为全局属性 ( ##vso[task.setvariable variable=$KEY]$VAL)。

当我调用 Azure Key Vault 时,它会返回密钥名称和导出变量,$(server-password-test)以便以后使用。但是,我无法访问它,因为变量名是另一个变量的值$(SERVER_ADMIN_SECRET_NAME)。解决方案应该是在 variable 内使用变量$($(SERVER_ADMIN_SECRET_NAME)),但这在 Azure Pipelines 中不起作用。

我的管道如下所示:

...
- 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))
...
Run Code Online (Sandbox Code Playgroud)

图表:
在此处输入图片说明

Hug*_*Lin 5

对于此问题,$($(SERVER_ADMIN_SECRET_NAME))管道中尚不支持嵌套变量(如)的值。你可以参考这个案例来了解这一点。

我能想到的解决方法是将变量工具箱任务添加到构建步骤的顶部。

在此任务中,您可以为变量设置嵌套变量值。

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

你可以参考这个案例来完成这个任务。


归档时间:

查看次数:

1556 次

最近记录:

6 年,1 月 前