将参数传递给 Azure ARM 模板

Passing parameters to Azure ARM templates

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

"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 文件导致并发出了问题?

如果您提供 TemplateParameterUri 它将使用参数文件来部署模板(并从文件中获取值)并且您的 envPrefixName 将得到 "lost" 因为它不会评估模板中的参数。

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