如何使用 AzureResourceManagerTemplateDeployment 将 azure-pipelines.yml 变量传递给 ARM 模板
How to pass azure-pipelines.yml variables to ARM templates with AzureResourceManagerTemplateDeployment
我开始使用 Azure 并尝试了以下步骤:
- 我向 Azure Vault 添加了一个秘密。
- 我将服务主体链接到我的 Azure DevOps 管道。
- 我创建了一个链接到我的保管库的变量组。
- 我用一些变量创建了一个变量组。
- 我创建了一个带有变量的 azure-pipelines.yaml: group: group1 group: group2 part
- 我
- task: AzureResourceManagerTemplateDeployment@3
有一个带参数的模板。如何满足变量组的参数?
变量组不适用于 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微软官方教程
我开始使用 Azure 并尝试了以下步骤:
- 我向 Azure Vault 添加了一个秘密。
- 我将服务主体链接到我的 Azure DevOps 管道。
- 我创建了一个链接到我的保管库的变量组。
- 我用一些变量创建了一个变量组。
- 我创建了一个带有变量的 azure-pipelines.yaml: group: group1 group: group2 part
- 我
- task: AzureResourceManagerTemplateDeployment@3
有一个带参数的模板。如何满足变量组的参数?
变量组不适用于 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微软官方教程