手臂模板“ id”的语法帮助需求

时间:2018-12-04 19:51:59

标签: azure arm-template

我正在尝试从资源浏览器的以下行进行负载均衡器的部署 /subscriptions/7450e323-8ffc-461f-9b0a-e035f26b/resourceGroups/app-testdev-network-rg/providers/Microsoft.Network/virtualNetworks/app-vnet-001/subnets/app501-iam-dev-sql-subnet01

并通过使用一些参数使其更加有用

"[resourceId('Microsoft.Network/virtualNetworks/', parameters('vnetname'),'/subnets/',parameters('subnetName'))]"

vnetname = app-vnet-001和subnetname = app501-iam-dev-sql-subnet01-但是,当我尝试部署Arm模板时,我从Visual Studio中获得以下输出-我是否需要添加concat函数这里?我以前使用过resourceID,但迄今为止没有使用过这种复杂的工具。

  

模板部署返回以下错误:13:54:45-1:54:38   PM-资源Microsoft.Network/loadBalancers   “ app501-iam-dev-sql-lb01”失败,并显示消息“ {{13:54:45-“错误”:   {13:54:45-“ code”:“ InvalidTemplate”,13:54:45-“ message”:   “无法处理资源的模板语言表达式   '/subscriptions/7450e323--461f-9b0a-cdc0e035f26b/resourceGroups/app501-iam-dev-sql-rg/providers/Microsoft.Network/loadBalancers/app501-iam-dev-sql-lb01'在第48行和列'9'。 '无法评估模板语言   函数'resourceId':函数仅需要一个多段   参数必须是资源类型,包括资源提供者   命名空间。当前函数参数   'Microsoft.Network/virtualNetworks/,app-vnet-001,/subnets/,app501-iam-dev-sql-subnet01'。   请参阅https://aka.ms/arm-template-expressions/#resourceid   使用情况的详细信息。”“ 13:54:45-}

1 个答案:

答案 0 :(得分:1)

您应该在resourceId()函数中将资源类型指定为单个字符串。

"[resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('vnetname'),parameters('subnetName'))]"

阅读:https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-template-functions-resource#resourceid