参数传递到Azure的ARM模板
问题描述:
我有我使用部署到哪借此参数资源组的模板:参数传递到Azure的ARM模板
"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
会因为不会评估模板中的参数而“丢失”。
降TemplateParameterUri
和您预期的那样(但你必须在这种情况下提供的所有参数,除非他们有默认值)
好吧,我在想,可能是因为它会奏效。这是一个问题,如果你想通过param文件提供一些参数,但有些东西需要更加动态。这是一个不合理的用例吗? – Batman
在模板中提供了默认值,而不是在参数文件中(你甚至可以这样做)。另一个选项 - 在部署前用powershell编辑参数文件 – 4c74356b41
听起来不错,谢谢你的快速帮助。 – Batman