Azure DevOps 中的 Azure ARM 模板密钥保管库覆盖
Azure ARM template keyvault override in Azure DevOps
如何覆盖 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 and/or secretName。
我们使用 powershell 将参数模板作为 JSON 对象读入 $Template
然后用适当的值替换 ID 值并将更新后的对象写入临时文件。
$Template["KeyVaultParm"].reference.keyvault.id = "<NewReferenceID>"
这使我们可以在 Prod/Dev 中使用相同的模板,并在使用相同的 ARM template/parameter 文件时拥有不同的 KeyVault。
您始终可以使用嵌套模板来执行此操作,只需提供一个带值的参数,然后使用嵌套模板来调用它。 Here's 正在使用嵌套模板获取 KV 值。您可以轻松地将我 link 的硬编码值替换为参数或表达式,这将允许您执行所需的操作。
您可能会实施类似 "switch" 的方法来根据资源组名称确定所需的值。
如何覆盖 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 and/or secretName。
我们使用 powershell 将参数模板作为 JSON 对象读入 $Template
然后用适当的值替换 ID 值并将更新后的对象写入临时文件。
$Template["KeyVaultParm"].reference.keyvault.id = "<NewReferenceID>"
这使我们可以在 Prod/Dev 中使用相同的模板,并在使用相同的 ARM template/parameter 文件时拥有不同的 KeyVault。
您始终可以使用嵌套模板来执行此操作,只需提供一个带值的参数,然后使用嵌套模板来调用它。 Here's 正在使用嵌套模板获取 KV 值。您可以轻松地将我 link 的硬编码值替换为参数或表达式,这将允许您执行所需的操作。
您可能会实施类似 "switch" 的方法来根据资源组名称确定所需的值。