如何使用 AzureResourceManagerTemplateDeployment 将 azure-pipelines.yml 变量传递给 ARM 模板

How to pass azure-pipelines.yml variables to ARM templates with AzureResourceManagerTemplateDeployment

我开始使用 Azure 并尝试了以下步骤:

变量组不适用于 YAML 管道。将 AzureKeyVault 步骤添加到您的管道中,以便从密钥库中检索机密。

或者link你的ARM模板直接到keyvault; ARM 模板原生支持 keyvault 参数:

"adminPassword": {
        "reference": {
          "keyVault": {
          "id": "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.KeyVault/vaults/<vault-name>"
          },
          "secretName": "ExamplePassword"
        }
      }

或者编写您的应用程序以在运行时直接从密钥库检索机密。

您可以尝试使用 overrideParameters 参数来使用变量组中定义的变量覆盖 ARM 模板的参数。检查 here 以获取有关此任务的更多参数。

- task: AzureResourceManagerTemplateDeployment@3
      inputs:
        azureResourceManagerConnection: <connection>

        overrideParameters: -storageAcctName azurerg -Username $(vmusername) -azureKeyVaultName $(fabrikamFibre)

访问AzureKeyVault,也可以使用Azure Key Vault task to get your secrets in your build pipeline, or integrate KeyVault to your ARM template as @Daniel Mann pointed out. Check here微软官方教程