使用自动缩放操作在 Azure 监视器中发送电子邮件和 webhook 警报通知

本文演示如何设置通知,以便可以在 Azure 中基于自动缩放操作调用特定 Web URL 或发送电子邮件。

Webhook

使用 Webhook,可以在发生特定事件或触发器时向特定 URL 终结点(回叫 URL)发送 HTTP 请求。 使用 Webhook,可以通过启用不同系统或应用程序之间的信息自动交换来自动执行和简化流程。 使用 Webhook 触发自定义代码、通知或其他操作,以在发生自动缩放事件时运行。

电子邮件

发生自动缩放事件时,可以将电子邮件发送到任何有效的电子邮件地址。 还将通知运行规则的订阅的管理员和共同管理员。

配置通知

使用 Azure 门户、CLI、PowerShell 或资源管理器模板配置通知。

使用 Azure 门户设置通知。

选择自动缩放设置页上的“通知”选项卡以配置通知。

选中复选框,以向订阅管理员或共同管理员发送电子邮件。 还可以输入要向其发送通知的电子邮件地址列表。

输入 Webhook URI 以向 Web 服务发送通知。 还可以向 Webhook 请求添加自定义标头。 例如,可以在标头中添加身份验证令牌、查询参数或添加自定义标头来标识请求的源。

A screenshot showing the notify tab on the autoscale settings page.

webhook 中的身份验证

Webhook 可使用基于令牌的身份验证进行身份验证,其中将具有令牌 ID 的 Webhook URI 保存为查询参数。 例如 https://mysamplealert/webcallback?tokenid=123-abc456-7890&myparameter2=value123

自动缩放通知 webhook 负载架构

生成自动缩放通知时,以下元数据会包含在 webhook 负载中:

{
    "version": "1.0",
    "status": "Activated",
    "operation": "Scale Out",
    "context": {
        "timestamp": "2023-06-22T07:01:47.8926726Z",
        "id": "/subscriptions/123456ab-9876-a1b2-a2b1-123a567b9f8767/resourceGroups/rg-001/providers/microsoft.insights/autoscalesettings/AutoscaleSettings-002",
        "name": "AutoscaleSettings-002",
        "details": "Autoscale successfully started scale operation for resource 'ScaleableAppServicePlan' from capacity '1' to capacity '2'",
        "subscriptionId": "123456ab-9876-a1b2-a2b1-123a567b9f8767",
        "resourceGroupName": "rg-001",
        "resourceName": "ScaleableAppServicePlan",
        "resourceType": "microsoft.web/serverfarms",
        "resourceId": "/subscriptions/123456ab-9876-a1b2-a2b1-123a567b9f8767/resourceGroups/rg-001/providers/Microsoft.Web/serverfarms/ScaleableAppServicePlan",
        "portalLink": "https://portal.azure.cn/#resource/subscriptions/123456ab-9876-a1b2-a2b1-123a567b9f8767/resourceGroups/rg-001/providers/Microsoft.Web/serverfarms/ScaleableAppServicePlan",
        "resourceRegion": "China North",
        "oldCapacity": "1",
        "newCapacity": "2"
    },
    "properties": {
        "key1": "value1",
        "key2": "value2"
    }   
}
字段 必需 说明
状态 指示生成自动缩放操作的状态。
operation 对于实例的增加,值为“Scale Out”。对于实例的减少,值为“Scale In”。
上下文 自动缩放操作上下文。
timestamp 触发自动缩放操作时的时间戳。
id 自动缩放设置的资源管理器 ID。
name 自动缩放设置的名称。
详细信息 自动缩放服务执行的操作和实例计数的更改的说明。
subscriptionId 所缩放的目标资源的订阅 ID。
resourceGroupName 所缩放的目标资源的资源组名。
resourceName 所缩放的目标资源的名称。
resourceType 三个支持的值是:“microsoft.classiccompute/domainnames/slots/roles”- Azure 云服务角色、“microsoft.compute/virtualmachinescalesets”- Azure 虚拟机规模集和“Microsoft.Web/serverfarms”- Azure Monitor 的 Web 应用功能。
ResourceId 所缩放的目标资源的资源管理器 ID。
portalLink 指向目标资源摘要页的 Azure 门户链接。
oldCapacity 自动缩放执行缩放操作时的当前(旧)实例计数。
newCapacity 自动缩放将资源缩放到的新实例计数。
properties 可选。 <键, 值> 对集(例如字典 <String, String>)。 properties 字段是可选的。 在自定义用户界面或基于逻辑应用的工作流中,可以输入可使用有效负载传递的键和值。 将自定义属性传递回传出 Webhook 调用的替代方法是使用 Webhook URI 本身(作为查询参数)。