通过API的Azure创建警报

时间:2018-08-17 02:15:04

标签: azure powershell azure-powershell

在Azure中通过API创建警报。 确实创建了警报,但“事件类别”字段显示为全部,而不是管理

我要创建的警报是针对管理事件类别的,但是正在为所有事件类别创建的警报。

我之前使用过相同的代码,并且可以正常工作。

Azure Alert ScreenShot

如果我尝试通过GUI更新任何内容,则会出现错误:无法更新警报“测试”。条件中缺少类别字段。

Error ScreenShot

PowerShell

创建提醒的正文

$Remediate = @" {
"id": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/resourceGroups/xxxxxxxxxxxxxxx/providers/microsoft.insights/activityLogAlerts/Testing",
"type": "Microsoft.Insights/ActivityLogAlerts",
"name": "Testing",
"location": "Global",
"kind": null,
"tags": {},
"properties": {
    "scopes": ["/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"],
    "condition": {
        "allOf": [{
            "field": "Category",
            "equals": "Administrative",
            "containsAny": null
        }, {
            "field": "operationName",
            "equals": "Microsoft.Authorization/policyAssignments/write",
            "containsAny": null
        }]
    },
    "actions": {
        "actionGroups": [{
            "actionGroupId": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/resourcegroups/xxxxxxxxxxxxxxx/providers/microsoft.insights/actiongroups/TestingAlertGRP",
            "webhookProperties": ""
        }]
    },
    "enabled": true,
    "description": "Alert created for Testing"
},
"identity": null
}

"@

API

$API = "https://management.azure.com/subscriptions/$SubscriptionID/resourceGroups/$ResourceGroupName/providers/microsoft.insights/activityLogAlerts/$Name`?api-version=2017-04-01"
Invoke-RestMethod -Method Put -Uri $API -Headers @{Authorization = "Bearer $Token"} -Body $Remediate -ContentType 'application/json' | Out-Null

2 个答案:

答案 0 :(得分:0)

注意:您必须在警报中至少指定上述条件之一(管理,安全性,服务运行状况,建议,策略,自动缩放)。您可能不会创建每次在活动日志中创建事件时都会激活的警报。

enter image description here

有关更多详细信息,请参阅“ Create activity log alerts (Classic)”。

答案 1 :(得分:0)

  

确实创建了警报,但是“事件类别”字段显示为全部而不是“管理”。

不要重现此问题,我检查了请求正文,应该没事。

  

如果我尝试通过GUI更新任何内容,则会出现错误:无法更新警报“测试”。条件中缺少类别字段

Event categoryall时,我已重现此问题(我通过下面提到的API将类别修改为all)。

enter image description here

如果您要解决此问题,建议您使用此API。只需单击页面中的Try It并登录您的帐户。您可以参考屏幕截图和我的示例请求正文。

我的样品申请正文:

{"location":"global","properties":{"scopes":["/subscriptions/xxxxxxx"],"description":"test","condition":{"allOf":[{"field":"category","equals":"Administrative"},{"field":"resourceType","equals":"Microsoft.Web/serverFarms"}]},"actions":{"actionGroups":[{"actionGroupId":"/subscriptions/xxxxxxx/resourcegroups/joywebapp/providers/microsoft.insights/actiongroups/joyactiongroup","webhookProperties":{}}]},"enabled":true}}

请求:

enter image description here

enter image description here

签入门户:

enter image description here