Web测试中未启用Azure ARM模板中的警报规则

时间:2016-11-09 15:14:11

标签: azure azure-resource-manager

我正在使用ARM模板以编程方式创建Application Insights Web测试和警报规则。 ARM模板基于this article

已创建Web测试和警报规则,但已禁用Web测试的警报属性。警报规则列在警报规则刀片上,但不在 Webtests 部分中,但在其他部分中,请参见图片:

enter image description here

为了获得启用警报的网络测试,我缺少什么?

ARM模板(SO {删除了WebTest属性的值):

{
  "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "webTestName": {
      "type": "string"
    },
    "appName": { "type": "string" }
  },
  "variables": {
    "url": "http://www.google.com",
    "testName": "[concat(parameters('webTestName'), '-', toLower(parameters('appName')))]",
    "alertRuleName": "[concat(parameters('webTestName'), '-', toLower(parameters('appName')), '-', subscription().subscriptionId)]"
  },
  "resources": [
    {
      "name": "[parameters('appName')]",
      "type": "Microsoft.Insights/components",
      "apiVersion": "2014-04-01",
      "kind": "web",
      "location": "Central US",
      "properties": {
        "Application_Type": "web",
        "Flow_Type": "Redfield",
        "Request_Source": "Unknown",
        "Name": "[parameters('appName')]",
        "PackageId": null,
        "ApplicationId": "[parameters('appName')]"
      },
      "tags": {
        "applicationType": "web"
      }
    },
    {
      "name": "[variables('testName')]",
      "apiVersion": "2014-04-01",
      "type": "microsoft.insights/webtests",
      "location": "Central US",
      "dependsOn": [
        "[resourceId('Microsoft.Insights/components', parameters('appName'))]"
      ],
      "tags": {
        "[concat('hidden-link:', resourceId('Microsoft.Insights/components', parameters('appName')))]": "Resource"
      },
      "properties": {
        "Name": "[parameters('webTestName')]",
        "Description": "description",
        "Enabled": true,
        "Frequency": 300,
        "Timeout": 120,
        "Kind": "ping",
        "RetryEnabled": true,
        "Locations": [
          {
            "Id": "us-il-ch1-azr"
          },
          {
            "Id": "emea-se-sto-edge"
          },
          {
            "Id": "emea-nl-ams-azr"
          }
        ],
        "Configuration": {
          "WebTest": "[concat('                                        ')]"
        },
        "SyntheticMonitorId": "[variables('testName')]"
      }
    },
    {
      "name": "[variables('alertRuleName')]",
      "apiVersion": "2014-04-01",
      "type": "Microsoft.Insights/alertrules",
      "location": "East US",
      "dependsOn": [
        "[resourceId('Microsoft.Insights/webtests', variables('testName'))]"
      ],
      "tags": {
        "[concat('hidden-link:', resourceId('microsoft.insights/components', parameters('appName')))]": "Resource",
        "[concat('hidden-link:', resourceId('microsoft.insights/webtests', variables('testName')))]": "Resource"
      },
      "properties": {
        "name": "[variables('alertRuleName')]",
        "description": "Alert for availability test",
        "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', variables('testName'))]",
            "metricName": "GSMT_AvRaW"
          },
          "windowSize": "PT5M",
          "failedLocationCount": 2
        },
        "actions": [
          {
            "$type": "Microsoft.WindowsAzure.Management.Monitoring.Alerts.Models.RuleEmailAction, Microsoft.WindowsAzure.Management.Mon.Client",
            "odata.type": "Microsoft.Azure.Management.Insights.Models.RuleEmailAction",
            "sendToServiceOwners": true,
            "customEmails": []
          }
        ]
      }
    }
  ]
}

1 个答案:

答案 0 :(得分:2)

事实证明resourceUri的值区分大小写。解决方案:

"variables": {
    ...
    "testName": "[toLower(concat(parameters('webTestName'), '-', toLower(parameters('appName'))))]",
    "alertRuleName": "[toLower(concat(parameters('webTestName'), '-', toLower(parameters('appName')), '-', subscription().subscriptionId))]"
},