arm 模板需要语法帮助 "id"

syntax help need for arm template "id"

我正在尝试从资源浏览器中使用以下行来部署负载平衡器 /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,但到目前为止还没有这么复杂。

Template deployment returned the following errors: 13:54:45 - 1:54:38 PM - Resource Microsoft.Network/loadBalancers 'app501-iam-dev-sql-lb01' failed with message '{ 13:54:45 - "error": { 13:54:45 - "code": "InvalidTemplate", 13:54:45 - "message": "Unable to process template language expressions for resource '/subscriptions/7450e323--461f-9b0a-cdc0e035f26b/resourceGroups/app501-iam-dev-sql-rg/providers/Microsoft.Network/loadBalancers/app501-iam-dev-sql-lb01' at line '48' and column '9'. 'Unable to evaluate template language function 'resourceId': function requires exactly one multi-segmented argument which must be resource type including resource provider namespace. Current function arguments 'Microsoft.Network/virtualNetworks/,app-vnet-001,/subnets/,app501-iam-dev-sql-subnet01'. Please see https://aka.ms/arm-template-expressions/#resourceid for usage details.'" 13:54:45 - }

您应该在 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