0
votes

I am attempting to the below line from resource explorer for a deployment of a Load balancer /subscriptions/7450e323-8ffc-461f-9b0a-e035f26b/resourceGroups/app-testdev-network-rg/providers/Microsoft.Network/virtualNetworks/app-vnet-001/subnets/app501-iam-dev-sql-subnet01

and make it a little more useful by using some parameters

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

vnetname = app-vnet-001 and subnetname = app501-iam-dev-sql-subnet01 - however, when I try to deploy the arm template I get the following output from Visual Studio - do I need to add the concat function here? I have used resourceID before but nothing this complex to date.

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 - }

1

1 Answers

1
votes

you should specify resource type as a single string in resourceId() function.

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

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