I am trying to deploy my ARM template and t failing on serverfarms creation step. I took example from Microsoft site Microsoft docks. I can't understand why it happens
Here is an error code, I change location fro North to West Europe,I try with variable incited of parameter. Nothing helps.
Resource Microsoft.Web/serverfarms 'ASE-APP-SERVICE-PLAN' failed with message '{
"Code": "NotFound",
"Message": "Server farm with name ASE-APP-SERVICE-PLAN not found.",
"Target": null,
"Details": [
{
"Message": "Server farm with name ASE-APP-SERVICE-PLAN not found."
},
{
"Code": "NotFound"
},
{
"ErrorEntity": {
"ExtendedCode": "11001",
"MessageTemplate": "Server farm with name {0} not found.",
"Parameters": [
"ASE-APP-SERVICE-PLAN"
],
"Code": "NotFound",
"Message": "Server farm with name ASE-APP-SERVICE-PLAN not found."
}
}
],
"Innererror": null
}'
Here is my simple arm template
{
"$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json",
"contentVersion": "1.0.0.0",
"parameters": {
"aseName": {
"type": "string",
"defaultValue": "ASE-TEST",
"metadata": {
"description": "Name of the App Service Environment"
}
},
"aseLocation": {
"type": "string",
"defaultValue": "West Europe",
"metadata": {
"description": "Location of the App Service Environment"
}
},
"APP-SPLANName": {
"type": "string",
"defaultValue": "ASE-APP-SERVICE-PLAN",
"metadata": {
"description": "App service plan name"
}
}
},
"variables": {
"ASE-VNetPrefix": "10.0.0.0/16",
"ASE-VNetSubnet1Name": "Subnet-1",
"ASE-VNetSubnet1Prefix": "10.0.0.0/24",
"ASE-VNET-Name": "[concat('ASE-VNET', uniqueString(resourceGroup().id))]",
"WEB-APP-ASEv2Name": "[concat('WEB-APP-ASEv2', uniqueString(resourceGroup().id))]"
},
"resources": [
{
"name": "[variables('ASE-VNET-Name')]",
"type": "Microsoft.Network/virtualNetworks",
"location": "[resourceGroup().location]",
"apiVersion": "2016-03-30",
"dependsOn": [],
"tags": {
"displayName": "ASE-VNET"
},
"properties": {
"addressSpace": {
"addressPrefixes": [
"[variables('ASE-VNetPrefix')]"
]
},
"subnets": [
{
"name": "[variables('ASE-VNetSubnet1Name')]",
"properties": {
"addressPrefix": "[variables('ASE-VNetSubnet1Prefix')]"
}
}
]
}
},
{
"apiVersion": "2015-08-01",
"type": "Microsoft.Web/hostingEnvironments",
"name": "[parameters('aseName')]",
"kind": "ASEV2",
"location": "[parameters('aseLocation')]",
"dependsOn": [
"[resourceId('Microsoft.Network/virtualNetworks', variables('ASE-VNET-Name'))]"
],
"properties": {
"name": "[parameters('aseName')]",
"location": "[parameters('aseLocation')]",
"virtualNetwork": {
"Id": "[concat('/subscriptions/',subscription().subscriptionId,'/resourceGroups/',resourceGroup().name,'/providers/Microsoft.Network/virtualNetworks/', variables('ASE-VNET-Name'))]",
"Subnet": "[variables('ASE-VNETSubnet1Name')]"
}
}
},
{
"name": "[parameters('APP-SPLANName')]",
"type": "Microsoft.Web/serverfarms",
"location": "[parameters('aseLocation')]",
"apiVersion": "2016-09-01",
"tags": {},
"properties": {
"name": "[parameters('APP-SPLANName')]",
"hostingEnvironmentProfile": {
"id": "[resourceId('Microsoft.Web/hostingEnvironments', parameters('aseName'))]"
}
},
"sku": {
"name": "I1",
"tier": "Isolated",
"size": "I1",
"family": "I",
"capacity": 0
},
"dependsOn": [
"[resourceId('Microsoft.Web/hostingEnvironments', parameters('aseName'))]"
]
},
{
"name": "[variables('WEB-APP-ASEv2Name')]",
"type": "Microsoft.Web/sites",
"location": "[resourceGroup().location]",
"apiVersion": "2016-08-01",
"tags": {},
"properties": {
"name": "[variables('WEB-APP-ASEv2Name')]",
"hostingEnvironmentProfile": {
"id": "[resourceId('Microsoft.Web/hostingEnvironments', parameters('aseName'))]"
},
"serverFarmId": "[resourceId('Microsoft.Web/serverfarms', parameters('APP-SPLANName'))]"
},
"dependsOn": [
"[resourceId('Microsoft.Web/serverfarms', parameters('APP-SPLANName'))]",
"[resourceId('Microsoft.Web/hostingEnvironments', parameters('aseName'))]"
]
}
]
}
I also can reproduce the issue that you mentioned with you mentioned template. I try to use Azure portal to create the service plan then I get ARM template as following
"resources": [
{
"apiVersion": "2016-03-01",
"name": "[parameters('name')]",
"type": "Microsoft.Web/serverfarms",
"location": "[parameters('location')]",
"kind": "",
"properties": {
"name": "[parameters('name')]",
"workerSize": "[parameters('workerSize')]",
"workerSizeId": "[parameters('workerSizeId')]",
"numberOfWorkers": "[parameters('numberOfWorkers')]",
"reserved": false,
"hostingEnvironment": "[parameters('hostingEnvironment')]"
},
"sku": {
"Tier": "[parameters('sku')]",
"Name": "[parameters('skuCode')]"
}
}
]
So I change the creating service farm with following code, it works correctly on my side.
{
"type": "Microsoft.Web/serverfarms",
"sku": {
"Tier": "Isolated",
"Name": "I1"
},
"kind": "",
"name": "[parameters('APP-SPLANName')]",
"apiVersion": "2016-03-01",
"location": "[parameters('aseLocation')]",
"properties": {
"name": "[parameters('APP-SPLANName')]",
"workerSize": "Small",
"workerSizeId": 0,
"numberOfWorkers": 1,
"reserved": false,
"hostingEnvironment": "[parameters('aseName')]"
},
"dependsOn": [
"[resourceId('Microsoft.Web/hostingEnvironments', parameters('aseName'))]"
]
}
The Whole template I used:
{
"$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json",
"contentVersion": "1.0.0.0",
"parameters": {
"aseName": {
"defaultValue": "ASE-TEST",
"type": "String",
"metadata": {
"description": "Name of the App Service Environment"
}
},
"aseLocation": {
"defaultValue": "West Europe",
"type": "String",
"metadata": {
"description": "Location of the App Service Environment"
}
},
"APP-SPLANName": {
"defaultValue": "ASE-APP-SERVICE-PLAN",
"type": "String",
"metadata": {
"description": "App service plan name"
}
}
},
"variables": {
"ASE-VNetPrefix": "10.0.0.0/16",
"ASE-VNetSubnet1Name": "Subnet-1",
"ASE-VNetSubnet1Prefix": "10.0.0.0/24",
"ASE-VNET-Name": "[concat('ASE-VNET', uniqueString(resourceGroup().id))]",
"WEB-APP-ASEv2Name": "[concat('WEB-APP-ASEv2', uniqueString(resourceGroup().id))]"
},
"resources": [
{
"type": "Microsoft.Network/virtualNetworks",
"name": "[variables('ASE-VNET-Name')]",
"apiVersion": "2016-03-30",
"location": "[resourceGroup().location]",
"tags": {
"displayName": "ASE-VNET"
},
"properties": {
"addressSpace": {
"addressPrefixes": [
"[variables('ASE-VNetPrefix')]"
]
},
"subnets": [
{
"name": "[variables('ASE-VNetSubnet1Name')]",
"properties": {
"addressPrefix": "[variables('ASE-VNetSubnet1Prefix')]"
}
}
]
},
"dependsOn": []
},
{
"type": "Microsoft.Web/hostingEnvironments",
"kind": "ASEV2",
"name": "[parameters('aseName')]",
"apiVersion": "2015-08-01",
"location": "[parameters('aseLocation')]",
"properties": {
"name": "[parameters('aseName')]",
"location": "[parameters('aseLocation')]",
"virtualNetwork": {
"Id": "[concat('/subscriptions/',subscription().subscriptionId,'/resourceGroups/',resourceGroup().name,'/providers/Microsoft.Network/virtualNetworks/', variables('ASE-VNET-Name'))]",
"Subnet": "[variables('ASE-VNETSubnet1Name')]"
}
},
"dependsOn": [
"[resourceId('Microsoft.Network/virtualNetworks', variables('ASE-VNET-Name'))]"
]
},
{
"type": "Microsoft.Web/serverfarms",
"sku": {
"Tier": "Isolated",
"Name": "I1"
},
"kind": "",
"name": "[parameters('APP-SPLANName')]",
"apiVersion": "2016-03-01",
"location": "[parameters('aseLocation')]",
"properties": {
"name": "[parameters('APP-SPLANName')]",
"workerSize": "Small",
"workerSizeId": 0,
"numberOfWorkers": 1,
"reserved": false,
"hostingEnvironment": "[parameters('aseName')]"
},
"dependsOn": [
"[resourceId('Microsoft.Web/hostingEnvironments', parameters('aseName'))]"
]
},
{
"type": "Microsoft.Web/sites",
"name": "[variables('WEB-APP-ASEv2Name')]",
"apiVersion": "2016-08-01",
"location": "[resourceGroup().location]",
"tags": {},
"properties": {
"name": "[variables('WEB-APP-ASEv2Name')]",
"hostingEnvironmentProfile": {
"id": "[resourceId('Microsoft.Web/hostingEnvironments', parameters('aseName'))]"
},
"serverFarmId": "[resourceId('Microsoft.Web/serverfarms', parameters('APP-SPLANName'))]"
},
"dependsOn": [
"[resourceId('Microsoft.Web/serverfarms', parameters('APP-SPLANName'))]",
"[resourceId('Microsoft.Web/hostingEnvironments', parameters('aseName'))]"
]
}
]
}