将参数传递给 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
它将按您预期的那样工作(但在这种情况下您必须提供所有参数,除非它们具有默认值)
我有一个模板用于部署到采用此参数的资源组:
"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
它将按您预期的那样工作(但在这种情况下您必须提供所有参数,除非它们具有默认值)