Last active
February 4, 2016 00:47
-
-
Save drydenmaker/d0597c49739cdda3e646 to your computer and use it in GitHub Desktop.
IaC configuration for Azure WebSite
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": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", | |
"contentVersion": "1.0.0.0", | |
"parameters": { | |
"hostingPlanName": { | |
"type": "string", | |
"minLength": 1 | |
}, | |
"webSiteName": { | |
"type": "string", | |
"minLength": 1 | |
}, | |
"connectionString": { | |
"type": "string" | |
}, | |
"skuName": { | |
"type": "string", | |
"defaultValue": "F1", | |
"allowedValues": [ | |
"F1", | |
"D1", | |
"B1", | |
"B2", | |
"B3", | |
"S1", | |
"S2", | |
"S3", | |
"P1", | |
"P2", | |
"P3", | |
"P4" | |
], | |
"metadata": { | |
"description": "Describes plan's pricing tier and instance size. Check details at https://azure.microsoft.com/en-us/pricing/details/app-service/" | |
} | |
}, | |
"skuCapacity": { | |
"type": "int", | |
"defaultValue": 1, | |
"minValue": 1, | |
"metadata": { | |
"description": "Describes plan's instance count" | |
} | |
} | |
}, | |
"resources": [ | |
{ | |
"apiVersion": "2015-08-01", | |
"name": "[parameters('hostingPlanName')]", | |
"type": "Microsoft.Web/serverfarms", | |
"location": "[resourceGroup().location]", | |
"tags": { | |
"displayName": "HostingPlan" | |
}, | |
"sku": { | |
"name": "[parameters('skuName')]", | |
"capacity": "[parameters('skuCapacity')]" | |
}, | |
"properties": { | |
"name": "[parameters('hostingPlanName')]" | |
} | |
}, | |
{ | |
"apiVersion": "2015-08-01", | |
"name": "[parameters('webSiteName')]", | |
"type": "Microsoft.Web/sites", | |
"location": "[resourceGroup().location]", | |
"tags": { | |
"[concat('hidden-related:', resourceGroup().id, '/providers/Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]": "Resource", | |
"displayName": "Website" | |
}, | |
"dependsOn": [ | |
"[concat('Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]" | |
], | |
"properties": { | |
"name": "[parameters('webSiteName')]", | |
"serverFarmId": "[resourceId('Microsoft.Web/serverfarms', parameters('hostingPlanName'))]" | |
}, | |
"resources": [ | |
{ | |
"apiVersion": "2015-08-01", | |
"name": "connectionstrings", | |
"type": "config", | |
"dependsOn": [ | |
"[resourceId('Microsoft.Web/Sites', parameters('webSiteName'))]" | |
], | |
"properties": { | |
"MyConnectionStringName": { | |
"value": "parameters('connectionString')", | |
"type": "SQLAzure" | |
} | |
} | |
}, | |
{ | |
"apiVersion": "2015-08-01", | |
"name": "appsettings", | |
"type": "config", | |
"dependsOn": [ | |
"[resourceId('Microsoft.Web/Sites', parameters('webSiteName'))]" | |
], | |
"properties": { | |
"Validation": "set from environment deploymnet" | |
} | |
} | |
] | |
}, | |
{ | |
"apiVersion": "2014-04-01", | |
"name": "[concat(parameters('hostingPlanName'), '-', resourceGroup().name)]", | |
"type": "Microsoft.Insights/autoscalesettings", | |
"location": "[resourceGroup().location]", | |
"tags": { | |
"[concat('hidden-link:', resourceGroup().id, '/providers/Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]": "Resource", | |
"displayName": "AutoScaleSettings" | |
}, | |
"dependsOn": [ | |
"[concat('Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]" | |
], | |
"properties": { | |
"profiles": [ | |
{ | |
"name": "Default", | |
"capacity": { | |
"minimum": 1, | |
"maximum": 2, | |
"default": 1 | |
}, | |
"rules": [ | |
{ | |
"metricTrigger": { | |
"metricName": "CpuPercentage", | |
"metricResourceUri": "[concat(resourceGroup().id, '/providers/Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]", | |
"timeGrain": "PT1M", | |
"statistic": "Average", | |
"timeWindow": "PT10M", | |
"timeAggregation": "Average", | |
"operator": "GreaterThan", | |
"threshold": 80.0 | |
}, | |
"scaleAction": { | |
"direction": "Increase", | |
"type": "ChangeCount", | |
"value": 1, | |
"cooldown": "PT10M" | |
} | |
}, | |
{ | |
"metricTrigger": { | |
"metricName": "CpuPercentage", | |
"metricResourceUri": "[concat(resourceGroup().id, '/providers/Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]", | |
"timeGrain": "PT1M", | |
"statistic": "Average", | |
"timeWindow": "PT1H", | |
"timeAggregation": "Average", | |
"operator": "LessThan", | |
"threshold": 60.0 | |
}, | |
"scaleAction": { | |
"direction": "Decrease", | |
"type": "ChangeCount", | |
"value": 1, | |
"cooldown": "PT1H" | |
} | |
} | |
] | |
} | |
], | |
"enabled": false, | |
"name": "[concat(parameters('hostingPlanName'), '-', resourceGroup().name)]", | |
"targetResourceUri": "[concat(resourceGroup().id, '/providers/Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]" | |
} | |
}, | |
{ | |
"apiVersion": "2014-04-01", | |
"name": "[concat('ServerErrors ', parameters('webSiteName'))]", | |
"type": "Microsoft.Insights/alertrules", | |
"location": "[resourceGroup().location]", | |
"dependsOn": [ | |
"[concat('Microsoft.Web/sites/', parameters('webSiteName'))]" | |
], | |
"tags": { | |
"[concat('hidden-link:', resourceGroup().id, '/providers/Microsoft.Web/sites/', parameters('webSiteName'))]": "Resource", | |
"displayName": "ServerErrorsAlertRule" | |
}, | |
"properties": { | |
"name": "[concat('ServerErrors ', parameters('webSiteName'))]", | |
"description": "[concat(parameters('webSiteName'), ' has some server errors, status code 5xx.')]", | |
"isEnabled": false, | |
"condition": { | |
"odata.type": "Microsoft.Azure.Management.Insights.Models.ThresholdRuleCondition", | |
"dataSource": { | |
"odata.type": "Microsoft.Azure.Management.Insights.Models.RuleMetricDataSource", | |
"resourceUri": "[concat(resourceGroup().id, '/providers/Microsoft.Web/sites/', parameters('webSiteName'))]", | |
"metricName": "Http5xx" | |
}, | |
"operator": "GreaterThan", | |
"threshold": 0.0, | |
"windowSize": "PT5M" | |
}, | |
"action": { | |
"odata.type": "Microsoft.Azure.Management.Insights.Models.RuleEmailAction", | |
"sendToServiceOwners": true, | |
"customEmails": [ ] | |
} | |
} | |
}, | |
{ | |
"apiVersion": "2014-04-01", | |
"name": "[concat('ForbiddenRequests ', parameters('webSiteName'))]", | |
"type": "Microsoft.Insights/alertrules", | |
"location": "[resourceGroup().location]", | |
"dependsOn": [ | |
"[concat('Microsoft.Web/sites/', parameters('webSiteName'))]" | |
], | |
"tags": { | |
"[concat('hidden-link:', resourceGroup().id, '/providers/Microsoft.Web/sites/', parameters('webSiteName'))]": "Resource", | |
"displayName": "ForbiddenRequestsAlertRule" | |
}, | |
"properties": { | |
"name": "[concat('ForbiddenRequests ', parameters('webSiteName'))]", | |
"description": "[concat(parameters('webSiteName'), ' has some requests that are forbidden, status code 403.')]", | |
"isEnabled": false, | |
"condition": { | |
"odata.type": "Microsoft.Azure.Management.Insights.Models.ThresholdRuleCondition", | |
"dataSource": { | |
"odata.type": "Microsoft.Azure.Management.Insights.Models.RuleMetricDataSource", | |
"resourceUri": "[concat(resourceGroup().id, '/providers/Microsoft.Web/sites/', parameters('webSiteName'))]", | |
"metricName": "Http403" | |
}, | |
"operator": "GreaterThan", | |
"threshold": 0, | |
"windowSize": "PT5M" | |
}, | |
"action": { | |
"odata.type": "Microsoft.Azure.Management.Insights.Models.RuleEmailAction", | |
"sendToServiceOwners": true, | |
"customEmails": [ ] | |
} | |
} | |
}, | |
{ | |
"apiVersion": "2014-04-01", | |
"name": "[concat('CPUHigh ', parameters('hostingPlanName'))]", | |
"type": "Microsoft.Insights/alertrules", | |
"location": "[resourceGroup().location]", | |
"dependsOn": [ | |
"[concat('Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]" | |
], | |
"tags": { | |
"[concat('hidden-link:', resourceGroup().id, '/providers/Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]": "Resource", | |
"displayName": "CPUHighAlertRule" | |
}, | |
"properties": { | |
"name": "[concat('CPUHigh ', parameters('hostingPlanName'))]", | |
"description": "[concat('The average CPU is high across all the instances of ', parameters('hostingPlanName'))]", | |
"isEnabled": false, | |
"condition": { | |
"odata.type": "Microsoft.Azure.Management.Insights.Models.ThresholdRuleCondition", | |
"dataSource": { | |
"odata.type": "Microsoft.Azure.Management.Insights.Models.RuleMetricDataSource", | |
"resourceUri": "[concat(resourceGroup().id, '/providers/Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]", | |
"metricName": "CpuPercentage" | |
}, | |
"operator": "GreaterThan", | |
"threshold": 90, | |
"windowSize": "PT15M" | |
}, | |
"action": { | |
"odata.type": "Microsoft.Azure.Management.Insights.Models.RuleEmailAction", | |
"sendToServiceOwners": true, | |
"customEmails": [ ] | |
} | |
} | |
}, | |
{ | |
"apiVersion": "2014-04-01", | |
"name": "[concat('LongHttpQueue ', parameters('hostingPlanName'))]", | |
"type": "Microsoft.Insights/alertrules", | |
"location": "[resourceGroup().location]", | |
"dependsOn": [ | |
"[concat('Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]" | |
], | |
"tags": { | |
"[concat('hidden-link:', resourceGroup().id, '/providers/Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]": "Resource", | |
"displayName": "LongHttpQueueAlertRule" | |
}, | |
"properties": { | |
"name": "[concat('LongHttpQueue ', parameters('hostingPlanName'))]", | |
"description": "[concat('The HTTP queue for the instances of ', parameters('hostingPlanName'), ' has a large number of pending requests.')]", | |
"isEnabled": false, | |
"condition": { | |
"odata.type": "Microsoft.Azure.Management.Insights.Models.ThresholdRuleCondition", | |
"dataSource": { | |
"odata.type": "Microsoft.Azure.Management.Insights.Models.RuleMetricDataSource", | |
"resourceUri": "[concat(resourceGroup().id, '/providers/Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]", | |
"metricName": "HttpQueueLength" | |
}, | |
"operator": "GreaterThan", | |
"threshold": 100.0, | |
"windowSize": "PT5M" | |
}, | |
"action": { | |
"odata.type": "Microsoft.Azure.Management.Insights.Models.RuleEmailAction", | |
"sendToServiceOwners": true, | |
"customEmails": [ ] | |
} | |
} | |
}, | |
{ | |
"apiVersion": "2014-04-01", | |
"name": "[parameters('webSiteName')]", | |
"type": "Microsoft.Insights/components", | |
"location": "Central US", | |
"dependsOn": [ | |
"[concat('Microsoft.Web/sites/', parameters('webSiteName'))]" | |
], | |
"tags": { | |
"[concat('hidden-link:', resourceGroup().id, '/providers/Microsoft.Web/sites/', parameters('webSiteName'))]": "Resource", | |
"displayName": "AppInsightsComponent" | |
}, | |
"properties": { | |
"applicationId": "[parameters('webSiteName')]" | |
} | |
} | |
] | |
} |
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": "http://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", | |
"contentVersion": "1.0.0.0", | |
"parameters": { | |
"hostingPlanName": { | |
"value": null | |
}, | |
"websiteName": { | |
"value": "NO-NAME" | |
}, | |
"connectionString": { | |
"value": "NOCONNECT" | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment