I have an Azure resource management template that is part of a set of nested templates. He creates the App Insights component, warning rules against the website for banned requests, a multi-stage web test, and a warning rule against the web test. All resources except the alert rule for the web test are deployed successfully. I can log into the portal and create a warning against the test without problems after a failed deployment.
{ "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "company": { "type": "string" }, "region": { "type": "string" }, "retailerAPIKey": { "type": "string" }, "deviceID": { "type": "string" }, "lumicastVersion": { "type": "string" } }, "variables": { "frameworkWebSite": "[concat(parameters('company'),'-BLS-FRAMEWORK-',parameters('region'))]" }, "resources": [ { "name": "[concat('ForbiddenRequests ', variables('frameworkWebSite'))]", "type": "Microsoft.Insights/alertrules", "location": "[parameters('region')]", "apiVersion": "2014-04-01", "tags": { "displayName": "ForbiddenRequests frameworkWebSite" }, "properties": { "name": "[concat('ForbiddenRequests ', variables('frameworkWebSite'))]", "description": "[concat(variables('frameworkWebSite'), ' 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/', variables('frameworkWebSite'))]", "metricName": "Http403" }, "operator": "GreaterThan", "threshold": 0, "windowSize": "PT5M" }, "action": { "odata.type": "Microsoft.Azure.Management.Insights.Models.RuleEmailAction", "sendToServiceOwners": true, "customEmails": [ ] } } }, { "name": "[variables('frameworkWebSite')]", "type": "Microsoft.Insights/components", "location": "Central US", "apiVersion": "2014-04-01", "tags": { "displayName": "Component frameworkWebSite", "[concat('hidden-link:',resourceGroup().id,'/providers/Microsoft.Web/sites/',variables('frameworkWebSite'))]": "Resource" }, "properties": { "applicationId": "[variables('frameworkWebSite')]" } }, { "name": "[concat('siteinit-', variables('frameworkWebSite'))]", "apiVersion": "2015-05-01", "type": "Microsoft.Insights/webtests", "location": "Central US", "tags": { "displayName": "WebtestL ABL BSL Init frameworkWebSite", "[concat('hidden-link:', resourceId('microsoft.insights/components/', variables('frameworkWebSite')))]": "Resource" }, "dependsOn": [ "[concat('microsoft.insights/components/', variables('frameworkWebSite'))]" ], "properties": { "Name": "[concat('GETBytelightInit-',parameters('region'))]", "Description": "[concat('GETBytelightInit-',parameters('region'),'.webtest')]", "Enabled": true, "Frequency": 600, "Timeout": 120, "Kind": "multistep", "Locations": [ { "Id": "us-il-ch1-azr" }, { "Id": "us-ca-sjc-azr" }, { "Id": "us-tx-sn1-azr" } ], "Configuration": { "WebTest": "[concat('<workingwebtest goes here>','<ends here>')]" }, "SyntheticMonitorId": "[concat('siteinit-', variables('frameworkWebSite'))]" } }, { "name": "[concat('siteinit-', variables('frameworkWebSite'), '-alert')]", "type": "Microsoft.Insights/alertrules", "apiVersion": "2015-04-01", "location": "[parameters('region')]", "tags": { "displayName": "Alert webtest site Init frameworkWebSite", "[concat('hidden-link:', resourceId('microsoft.insights/components/', variables('frameworkWebSite')))]": "Resource", "[concat('hidden-link:', resourceId('microsoft.insights/webtests/', concat('siteinit-', variables('frameworkWebSite'))))]": "Resource" }, "dependsOn": [ "[concat('microsoft.insights/components/', variables('frameworkWebSite'))]", "[concat('microsoft.insights/webtests/siteinit-', variables('frameworkWebSite'))]" ], "properties": { "name": "[concat('siteinit-', variables('frameworkWebSite'), '-alert')]", "description": "Alert for site Initialize", "isEnabled": true, "condition": { "$type": "Microsoft.WindowsAzure.Management.Monitoring.Alerts.Models.LocationThresholdRuleCondition, Microsoft.WindowsAzure.Management.Mon.Client", "odata.type": "Microsoft.Azure.Management.Insights.Models.LocationThresholdRuleCondition", "dataSource": { "$type": "Microsoft.WindowsAzure.Management.Monitoring.Alerts.Models.RuleMetricDataSource, Microsoft.WindowsAzure.Management.Mon.Client", "odata.type": "Microsoft.Azure.Management.Insights.Models.RuleMetricDataSource", "resourceUri": "[resourceId('microsoft.insights/webtests/', concat('siteinit-', variables('frameworkWebSite')))]", "metricName": "GSMT_AvRaW" }, "windowSize": "PT15M", "failedLocationCount": 2 }, "action": { "$type": "Microsoft.WindowsAzure.Management.Monitoring.Alerts.Models.RuleEmailAction, Microsoft.WindowsAzure.Management.Mon.Client", "odata.type": "Microsoft.Azure.Management.Insights.Models.RuleEmailAction", "sendToServiceOwners": true, "customEmails": [ ] } } } ], "outputs": { "TestLink": { "type": "string", "value": "[resourceId('microsoft.insights/webtests/', concat('siteinit-', variables('frameworkWebSite')))]" } }
}
Deployment Failed:
"statusMessage": { "Code": "ResourceNotFound", "Message": "Exception of type 'Microsoft.WindowsAzure.Management.Monitoring.MonitoringServiceException' was thrown." },
This is only the first of many tests that will take place in this template, and each deployment has 2 copies of the site. Therefore, creating a rule manually is not an option.