在Azure ARM模板参数中表示继承/覆盖的好方法是什么?是否有类似的东西:
UnitedStates.json:
{
...
"parameters": {
"keyVaultName": { "value": "keyvaultus" }
}
}
WestUS.json:
{
...
"base": "UnitedStates.json"
"parameters": {
"keyVaultName": { "value": "@@inherit" }
"webAppName": { "value": "westus-demoapp" }
}
答案 0 :(得分:1)
在Azure ARM模板参数中表示继承/覆盖的好方法是什么?
我不知道为什么需要在Azure ARM模板参数中继承/覆盖。根据我的经验,如果您想根据不同的条件部署azure资源,现在azure资源模板支持conditionally部署资源。您可以在arm模板中实现。
另一种方法是使用自定义脚本来控制逻辑。例如,您可以创建多个参数json文件。然后,您可以使用逻辑代码来控制应该使用哪个参数json文件。
Powershell演示代码:
if($localtion -eq "WestUS")
{
$deployParameterFile = D:\Azure\Templates\WestUS.json
}
if($localtion -eq "UnitedStates")
{
$deployParameterFile = D:\Azure\Templates\UnitedStates.json
}
New-AzureRmResourceGroupDeployment -ResourceGroupName "xxxxx" -TemplateFile "D:\Azure\Templates\deploy.json" -TemplateParameterFile $deployParameterFile
答案 1 :(得分:1)
不,没有办法实现原生。您可以通过解析基本json参数并将其编辑到嵌套参数文件中来编写powershell \无论通过哪种脚本实现该目的。不能想到任何其他方式这样做。