首页 > 解决方案 > Azure DevOps 中的 Azure ARM 模板密钥库覆盖

问题描述

如何在 Azure DevOps 中覆盖 ARM 模板 Azure keyvault 参考?我有 ARM 模板,其参考如下:

"KeyVaultSecret": {
  "reference": {
    "keyVault": {
      "id": "/subscriptions/214124-1241-526-645-lele/resourceGroups/KEYVAULT-RG/providers/Microsoft.KeyVault/vaults/KeyVault"
    },
    "secretName": "VerySecret"
  }
}

但在某些情况下,我想覆盖 id 和/或 secretName。

标签: azurepowershellazure-devopsazure-resource-managerarm-template

解决方案


我们使用 powershell 将参数模板作为 JSON 对象读入,$Template然后将 ID 值替换为适当的值,并将更新后的对象写入临时文件。

$Template["KeyVaultParm"].reference.keyvault.id = "<NewReferenceID>"

这允许我们在 Prod/Dev 中使用相同的模板,并在使用相同的 ARM 模板/参数文件时拥有不同的 KeyVault。


推荐阅读