Azure资源管理器的所有函数'resourceId'参数必须为字符串文字错误

时间:2019-03-14 18:42:08

标签: azure azure-resource-manager

使用可用性集'/ subscriptions / xxx / resourceGroups / mgRG / providers / Microsoft.Compute / virtualMachines / myVM'实施ARM模板时,出现以下错误。 “无法评估模板语言函数'resourceId':所有函数参数必须为字符串文字

"availabilitySet": {
                    "id": "[resourceId(subscription(),parameters('RGName'),'Microsoft.Compute/availabilitySets',variables('ASName'))]"

我试图从参数中删除 subscription(),但无济于事。我必须保留参数('RGName'),因为它不是当前的资源组。

1 个答案:

答案 0 :(得分:1)

好吧,就是这样,它只接受字符串。

  1. subscription()将返回一个对象,而不是字符串
  2. 由于您使用的是subscription(),这意味着您要定位相同的订阅,因此只需删除此部分
  3. parameters('RGName')-仅在资源位于另一个资源组中时才需要。也必须是字符串
  4. variables('ASName')-也必须是字符串。

如果它抱怨某物不是字符串,而不是某物不是字符串:)