Inbuilt Functions in arm templates
- Functions in arm templates can be called with the following syntax
"[<function>(arg1, arg2....,argn)]"
- ARM Template functions Refer Here
- To define parameters in ARM Templates Refer Here
- For creating iterations in ARM Templates Refer Here
- Refer Here for the changes done in the template and below for the complete template
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"primaryregion": {
"type": "string",
"metadata": {
"description": "This is the primary region"
},
"defaultValue": "southindia"
},
"secondaryregion": {
"type": "string",
"metadata": {
"description": "This is the primary region"
},
"defaultValue": "centralindia"
},
"primary-cidr": {
"type": "string",
"metadata": {
"description": "This is the primary vnet address space"
},
"defaultValue": "10.0.0.0/16"
},
"secondary-cidr": {
"type": "string",
"metadata": {
"description": "This is the secondary vnet address space"
},
"defaultValue": "10.1.0.0/16"
},
"subnet-names": {
"type": "array",
"metadata": {
"description": "subnet name"
},
"defaultValue": ["web", "app", "db", "mgmt"]
},
"primary-subnet-cidr-format": {
"type": "string",
"metadata": {
"description": "subnet cidr format"
},
"defaultValue": "10.0.{0}.0/24"
},
"secondary-subnet-cidr-format": {
"type": "string",
"metadata": {
"description": "subnet cidr format"
},
"defaultValue": "10.1.{0}.0/24"
}
},
"resources": [
{
"type": "Microsoft.Network/virtualNetworks",
"apiVersion": "2020-11-01",
"name": "primaryvnet",
"location": "[parameters('primaryregion')]",
"properties": {
"addressSpace": {
"addressPrefixes": [ "[parameters('primary-cidr')]" ]
}
}
},
{
"type": "Microsoft.Network/virtualNetworks/subnets",
"apiVersion": "2020-11-01",
"name": "[format('primaryvnet/{0}',parameters('subnet-names')[copyIndex()])]",
"properties": {
"addressPrefix": "[format(parameters('primary-subnet-cidr-format'),copyIndex())]"
},
"copy": {
"name": "primary-subnet-copy",
"count": "[length(parameters('subnet-names'))]",
"mode": "Serial"
},
"dependsOn": [
"[resourceId('Microsoft.Network/virtualNetworks','primaryvnet')]"
]
},
{
"type": "Microsoft.Network/virtualNetworks",
"apiVersion": "2020-11-01",
"name": "secondaryvnet",
"location": "[parameters('secondaryregion')]",
"properties": {
"addressSpace": {
"addressPrefixes": [ "[parameters('secondary-cidr')]" ]
}
}
},
{
"type": "Microsoft.Network/virtualNetworks/subnets",
"apiVersion": "2020-11-01",
"name": "[format('secondaryvnet/{0}',parameters('subnet-names')[copyIndex()])]",
"properties": {
"addressPrefix": "[format(parameters('secondary-subnet-cidr-format'),copyIndex())]"
},
"copy": {
"name": "secondary-subnet-copy",
"count": "[length(parameters('subnet-names'))]",
"mode": "Serial"
},
"dependsOn": [
"[resourceId('Microsoft.Network/virtualNetworks','secondaryvnet')]"
]
}
]
}
- Try deploying

- Note: fix in the template try this template and deploy
Like this:
Like Loading...