我正在创建Azure资源模板,并在指定标记时收到此验证错误:
New-AzureResourceGroupDeployment:错误1:Code = InvalidTemplate; Message =部署模板验证失败:'模板资源 第'86'行和'10'列的'hosting-plan'无效:模板 语言表达''参数('intranetConnectivity')]'不是 支持..'。
以下是模板的相关部分:
"parameters": {
"intranetConnectivity": {
"type": "bool",
"defaultValue": false
},
...
}
"name": "[parameters('siteName')]",
"type": "Microsoft.Web/sites",
"location": "[parameters('siteLocation')]",
"tags": {
"[concat('hidden-related:', resourceGroup().id, '/providers/Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]": "Resource",
"ServiceModel": "[parameters('serviceModel')]",
"IntranetConnectivity": "[parameters('intranetConnectivity')]",
"Environment": "[parameters('environment')]"
},
我想可能参数名称太长了,但无论参数名称如何,我都会得到相同的错误。
答案 0 :(得分:1)
事实证明它不喜欢我在字符串值中使用布尔参数。我将参数定义更改为字符串,一切正常。
"intranetConnectivity": {
"type": "string",
"allowedValues": [
"true",
"false"
],
"defaultValue": "false"
},
答案 1 :(得分:0)
只是为了澄清标记,仅支持字符串值,不支持其他任何值。 Check the limitations
并非所有资源类型都支持标签。若要确定是否可以将标签应用于资源类型,请参阅对Azure资源的标签支持。
每个资源或资源组最多可以有50个标签 名称/值对。如果您需要应用的标签数量超过最大值 允许的数字,请使用JSON字符串作为标记值。 JSON字符串 可以包含应用于单个标记名称的许多值。一种 资源组可以包含许多具有50个标签的资源 名称/值对。
标签名称限制为512个字符,标签值为 限制为256个字符。对于存储帐户,标签名称为 限制为128个字符,并且标记值限制为256 字符。
通用VM不支持标签。
应用于资源组的标记不会被资源继承 在该资源组中。
标记不能应用于经典资源,例如Cloud Services。
标签名称不能包含以下字符:<,>,%,&,\,?,/