Last active
February 9, 2020 04:56
-
-
Save davidobrien1985/491b9531c264f8dc84af43bf7ce31a01 to your computer and use it in GitHub Desktop.
ARM template to deploy Azure Front Door and maintenance rules
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", | |
"contentVersion": "1.0.0.0", | |
"parameters": { | |
"frontDoorName": { | |
"defaultValue": "davidobrien", | |
"type": "string" | |
}, | |
"storageAccountName": { | |
"defaultValue": "davidobrienmaintenance", | |
"type": "string" | |
} | |
}, | |
"variables": {}, | |
"resources": [ | |
{ | |
"type": "Microsoft.Network/frontDoors", | |
"apiVersion": "2018-08-01", | |
"name": "[parameters('frontDoorName')]", | |
"location": "Global", | |
"properties": { | |
"resourceState": "Enabled", | |
"backendPools": [ | |
{ | |
"id": "[concat(resourceId('Microsoft.Network/frontdoors', parameters('frontDoorName')), '/BackendPools/webapp')]", | |
"name": "webapp", | |
"properties": { | |
"backends": [ | |
{ | |
"address": "david-obrien.net", | |
"httpPort": 80, | |
"httpsPort": 443, | |
"priority": 1, | |
"weight": 50, | |
"backendHostHeader": "david-obrien.net", | |
"enabledState": "Enabled" | |
} | |
], | |
"healthProbeSettings": { | |
"id": "[concat(resourceId('Microsoft.Network/frontdoors', parameters('frontDoorName')), '/HealthProbeSettings/healthProbeSettings-1581213385586')]" | |
}, | |
"loadBalancingSettings": { | |
"id": "[concat(resourceId('Microsoft.Network/frontdoors', parameters('frontDoorName')), '/LoadBalancingSettings/loadBalancingSettings-1581213385586')]" | |
}, | |
"resourceState": "Enabled" | |
} | |
}, | |
{ | |
"name": "maintenance", | |
"properties": { | |
"backends": [ | |
{ | |
"address": "[concat(parameters('frontDoorName'), 'maintenance.z8.web.core.windows.net')]", | |
"httpPort": 80, | |
"httpsPort": 443, | |
"priority": 1, | |
"weight": 50, | |
"backendHostHeader": "[concat(parameters('frontDoorName'), 'maintenance.z8.web.core.windows.net')]", | |
"enabledState": "Enabled" | |
} | |
], | |
"healthProbeSettings": { | |
"id": "[concat(resourceId('Microsoft.Network/frontdoors', parameters('frontDoorName')), '/HealthProbeSettings/healthProbeSettings-1581216895085')]" | |
}, | |
"loadBalancingSettings": { | |
"id": "[concat(resourceId('Microsoft.Network/frontdoors', parameters('frontDoorName')), '/LoadBalancingSettings/loadBalancingSettings-1581216895085')]" | |
}, | |
"resourceState": "Enabled" | |
} | |
} | |
], | |
"healthProbeSettings": [ | |
{ | |
"name": "healthProbeSettings-1581213385586", | |
"properties": { | |
"intervalInSeconds": 30, | |
"path": "/", | |
"protocol": "Https", | |
"resourceState": "Enabled" | |
} | |
}, | |
{ | |
"name": "healthProbeSettings-1581216895085", | |
"properties": { | |
"intervalInSeconds": 30, | |
"path": "/", | |
"protocol": "Https", | |
"resourceState": "Enabled" | |
} | |
} | |
], | |
"frontendEndpoints": [ | |
{ | |
"name": "xirus-azurefd-net", | |
"properties": { | |
"hostName": "[concat(parameters('frontDoorName'), '.azurefd.net')]", | |
"sessionAffinityEnabledState": "Disabled", | |
"sessionAffinityTtlSeconds": 0, | |
"resourceState": "Enabled" | |
} | |
} | |
], | |
"loadBalancingSettings": [ | |
{ | |
"name": "loadBalancingSettings-1581213385586", | |
"properties": { | |
"additionalLatencyMilliseconds": 0, | |
"sampleSize": 4, | |
"successfulSamplesRequired": 2, | |
"resourceState": "Enabled" | |
} | |
}, | |
{ | |
"name": "loadBalancingSettings-1581216895085", | |
"properties": { | |
"additionalLatencyMilliseconds": 0, | |
"sampleSize": 4, | |
"successfulSamplesRequired": 2, | |
"resourceState": "Enabled" | |
} | |
} | |
], | |
"routingRules": [ | |
{ | |
"name": "routingrule0", | |
"properties": { | |
"frontendEndpoints": [ | |
{ | |
"id": "[concat(resourceId('Microsoft.Network/frontdoors', parameters('frontDoorName')), '/FrontendEndpoints/xirus-azurefd-net')]" | |
} | |
], | |
"acceptedProtocols": [ | |
"Http", | |
"Https" | |
], | |
"patternsToMatch": [ | |
"/*" | |
], | |
"forwardingProtocol": "HttpsOnly", | |
"backendPool": { | |
"id": "[concat(resourceId('Microsoft.Network/frontdoors', parameters('frontDoorName')), '/BackendPools/maintenance')]" | |
}, | |
"enabledState": "Enabled", | |
"resourceState": "Enabled" | |
} | |
} | |
], | |
"enabledState": "Enabled", | |
"friendlyName": "[parameters('frontDoorName')]" | |
} | |
}, | |
{ | |
"type": "Microsoft.Storage/storageAccounts", | |
"apiVersion": "2019-06-01", | |
"name": "[parameters('storageAccountName')]", | |
"location": "australiaeast", | |
"sku": { | |
"name": "Standard_RAGRS", | |
"tier": "Standard" | |
}, | |
"kind": "StorageV2", | |
"properties": { | |
"networkAcls": { | |
"bypass": "AzureServices", | |
"virtualNetworkRules": [], | |
"ipRules": [], | |
"defaultAction": "Allow" | |
}, | |
"supportsHttpsTrafficOnly": true, | |
"encryption": { | |
"services": { | |
"file": { | |
"keyType": "Account", | |
"enabled": true | |
}, | |
"blob": { | |
"keyType": "Account", | |
"enabled": true | |
} | |
}, | |
"keySource": "Microsoft.Storage" | |
}, | |
"accessTier": "Hot" | |
} | |
}, | |
{ | |
"type": "Microsoft.Storage/storageAccounts/blobServices", | |
"apiVersion": "2019-06-01", | |
"name": "[concat(parameters('storageAccountName'), '/default')]", | |
"dependsOn": [ | |
"[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName'))]" | |
], | |
"sku": { | |
"name": "Standard_RAGRS" | |
}, | |
"properties": { | |
"cors": { | |
"corsRules": [] | |
}, | |
"deleteRetentionPolicy": { | |
"enabled": false | |
} | |
} | |
}, | |
{ | |
"type": "Microsoft.Storage/storageAccounts/fileServices", | |
"apiVersion": "2019-06-01", | |
"name": "[concat(parameters('storageAccountName'), '/default')]", | |
"dependsOn": [ | |
"[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName'))]" | |
], | |
"sku": { | |
"name": "Standard_RAGRS" | |
}, | |
"properties": { | |
"cors": { | |
"corsRules": [] | |
} | |
} | |
}, | |
{ | |
"type": "Microsoft.Storage/storageAccounts/blobServices/containers", | |
"apiVersion": "2019-06-01", | |
"name": "[concat(parameters('storageAccountName'), '/default/$web')]", | |
"dependsOn": [ | |
"[resourceId('Microsoft.Storage/storageAccounts/blobServices', parameters('storageAccountName'), 'default')]", | |
"[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName'))]" | |
], | |
"properties": { | |
"publicAccess": "None" | |
} | |
} | |
] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment