Azure资源模板:不支持语言表达式

时间:2014-11-19 21:21:36

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

我正在创建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')]"
},

我想可能参数名称太长了,但无论参数名称如何,我都会得到相同的错误。

2 个答案:

答案 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。

  •   

    标签名称不能包含以下字符:<,>,%,&,\,?,/