我正在尝试从资源浏览器的以下行进行负载均衡器的部署 /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-}
答案 0 :(得分:1)
您应该在resourceId()
函数中将资源类型指定为单个字符串。
"[resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('vnetname'),parameters('subnetName'))]"