部署 ARM 模板时,使用 PowerShell 覆盖 parameters.json 文件中的参数

ity*_*970 5 powershell azure azure-resource-manager

我正在使用 Azure PowerShell 部署 ARM 模板,但希望在运行时覆盖 parameters.json 文件中的参数

有没有办法做到这一点?

例如,我get-azurermresource用来将虚拟网络名称放入一个名为的变量中,$vnetName 然后我想传递这个变量$vnetName来替换 azuredeploy.parameters.json 文件中 Vnet Name 的参数

Mar*_*ndl 6

要在运行时覆盖参数,您只需在调用New-AzureRmResourceGroupDeploymentcmdlet时指定它:

 New-AzureRmResourceGroupDeployment `
  -TemplateFile D:\tmp\azuredeploy.json `
  -TemplateParameterFile D:\tmp\azuredeploy.json `
  -<yourParameterNameHere> $vnetName `
  -ResourceGroupName myRg
Run Code Online (Sandbox Code Playgroud)

您还可以使用 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
Run Code Online (Sandbox Code Playgroud)