【问题标题】:Dynamic Variables in Azure Pipeline TemplateAzure 管道模板中的动态变量
【发布时间】:2020-08-20 09:17:20
【问题描述】:

我正在开发一个模板来帮助简化我们对本地 IIS 服务器的部署。用户名和密码存储在 Azure Key Vault 中,但是当我在 Web 应用管理任务中使用它们时,我无法访问它们。我在想我只是语法错误。

为了获取 Azure Key Vault 中的密钥,我使用了以下任务。这样做的原因是它找到了键并且不会给我一个错误。

- task: AzureKeyVault@1
  inputs:
    azureSubscription : '_MyServiceConnectionHere_'
    KeyVaultName : '_MyVaultNameHere_'
    SecretsFilter : '${{ parameters.websiteName }}-AppPoolUsername,${{ parameters.websiteName }}-AppPoolPassword'

这就是我在 IIS Web App 管理任务中使用它们的方式。 (我已将以下内容缩写为相关部分。)

- task: IISWebAppManagementOnMachineGroup@0
  displayName: Update Website and App Pool
  inputs:
    AppPoolNameForWebsite: ${{ parameters.websiteName }}
    DotNetVersionForWebsite: 'No Managed Code'
    AppPoolIdentityForWebsite: 'specificUser'
    AppPoolUsernameForWebsite: ${{variables['${{parameters.websiteName}}-AppPoolUsername']}}
    AppPoolPasswordForWebsite: ${{variables['${{parameters.websiteName}}-AppPoolPassword']}}
    AppPoolName: ${{ parameters.websiteName }}

在这里,用户名和密码无法解析。如您所见,我正在尝试使用以下语法检索它们:

${{variables['${{parameters.websiteName}}-AppPoolUsername']}}

通过已组合的键名检索变量的正确语法是什么?

【问题讨论】:

    标签: azure yaml azure-pipelines azure-keyvault


    【解决方案1】:

    在 IISWebAppManagementOnMachineGroup 任务中,你只需要使用$(xxx) 来获取一个变量作为普通变量。

    ${{}} 是编译时语法。您需要首先运行 Azure Key Vault 任务以使变量在环境中生成。

    要在以下任务中使用 Azure Key Vault 机密,只需使用 $(secret_name)。

    secret_name 是您在 Azure Key Vault 中创建的名称。

    还可以查看此博客中的详细示例:Using secrets from Azure Key Vault in a pipeline

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-16
      • 2020-06-22
      • 1970-01-01
      • 2020-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多