ARM模板webtest alertrule因ResourceNotFound而失败

时间:2016-02-23 20:17:21

标签: azure azure-resource-manager

我有一个Azure资源管理器模板,它是一组嵌套模板的一部分。它创建了一个App Insights组件,针对禁止请求的网站警报规则,多步骤Web测试以及针对Web测试的警报规则。除了针对Web测试的警报规则之外的所有资源都成功部署。在部署失败后,我可以进入门户网站并针对测试创建警报而不会出现问题。

{
"$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')))]"
    }
}

}

部署失败:

"statusMessage": {
  "Code": "ResourceNotFound",
  "Message": "Exception of type 'Microsoft.WindowsAzure.Management.Monitoring.MonitoringServiceException' was thrown."
},

这只是该模板中的第一个测试,每个部署都有2个站点副本。因此,无法创建手动警报规则。

1 个答案:

答案 0 :(得分:0)

我认为您的resourceUri存在问题:

"resourceUri": "[concat(resourceGroup().id, '/providers/Microsoft.Web/sites/', variables('frameworkWebSite'))]",

尝试使用resourceId()函数:

"resourceUri": "[resourceId(resourceGroup().name, 'Microsoft.Web/sites', variables('frameworkWebSite'))]",

请参阅resourceId() reference here

希望这有帮助。