将参数传递给Azure ARM模板

时间:2017-11-25 19:08:22

标签: windows powershell azure azure-resource-manager arm-template

我有一个模板,用于部署到采用此参数的资源组:

"envPrefixName": {
  "type": "string",
  "metadata": {
    "description": "Prefix for the environment (2-5 characters)"
  },
  "defaultValue": "cust1",
  "minLength": 2,
  "maxLength": 5
},

我想使这个参数成为一个可以在调用cdmlet时重写的值:

    $AzureParams = @{ 
        ResourceGroupName = $ResourceGroup
        TemplateUri = $TemplateUri
        TemplateParameterUri = $TemplateParamUri 
        Mode = "Complete"
        envPrefixName = "sunlb" #Override default parameter value
        Force = $true
    }

    New-AzureRmResourceGroupDeployment @AzureParams

我尝试过这种方法,但解决方案继续尝试使用模板中设置的值,而不是在我的调用中作为参数传递的值。

编辑:TemplateParameterUri文件可能导致并发出?

1 个答案:

答案 0 :(得分:1)

如果您提供TemplateParameterUri,它将使用参数文件来部署模板(并从文件中获取值),而您的envPrefixName将“丢失”,因为它不会评估参数模板。

删除TemplateParameterUri它将按预期工作(但在这种情况下你必须提供所有参数,除非它们有默认值)