【问题标题】:Override a parameter in the parameters.json file with PowerShell when deploying ARM template部署 ARM 模板时使用 PowerShell 覆盖 parameters.json 文件中的参数
【发布时间】:2018-08-16 15:54:05
【问题描述】:
我正在使用 Azure PowerShell 部署 ARM 模板,但想在 runtime
覆盖 parameters.json 文件中的参数
有没有办法做到这一点?
例如,我使用get-azurermresource 将虚拟网络名称放入名为$vnetName 的变量中
然后我想传递这个变量 $vnetName 来替换 azuredeploy.parameters.json 文件中 Vnet Name 的参数
【问题讨论】:
标签:
powershell
azure
azure-resource-manager
【解决方案1】:
要在 runtime 覆盖参数,您只需在调用 New-AzureRmResourceGroupDeployment cmdlet 时指定它:
New-AzureRmResourceGroupDeployment `
-TemplateFile D:\tmp\azuredeploy.json `
-TemplateParameterFile D:\tmp\azuredeploy.json `
-<yourParameterNameHere> $vnetName `
-ResourceGroupName myRg
您还可以使用 PowerShell 永久覆盖 json 文件本身:
$paramFile = Get-Content d:\tmp\azuredeploy.parameters.json | ConvertFrom-Json
$paramFile.parameters.vnetName.value = $vnetName
$paramFile | ConvertTo-Json | Set-Content d:\tmp\azuredeploy.parameters.json