Uso de acciones de escalado automático para enviar notificaciones de alerta por correo electrónico y Webhook en Azure Monitor

En este artículo se muestra cómo configurar notificaciones para que pueda llamar a direcciones URL web específicas o enviar mensajes de correo electrónico en función de las acciones de escalabilidad automática de Azure.

webhooks

Los webhooks permiten enviar solicitudes HTTP a un punto de conexión de dirección URL específico (dirección URL de devolución de llamada) cuando se produce un determinado evento o desencadenante. Mediante webhooks, puede automatizar y simplificar los procesos habilitando el intercambio automático de información entre diferentes sistemas o aplicaciones. Use webhooks para desencadenar código personalizado, notificaciones u otras acciones que se ejecutarán cuando se produzca un evento de escalado automático.

Correo electrónico

Puede enviar un correo electrónico a cualquier dirección de correo electrónico válida cuando se produzca un evento de escalado automático. También se enviará una notificación a los administradores y los coadministradores de la suscripción en la que se ejecuta la regla.

Configuración de notificaciones

Use las plantillas de Azure Portal, CLI, PowerShell o Resource Manager para configurar las notificaciones.

Configurar las notificaciones mediante Azure Portal.

Seleccione la pestaña Notificar en la página de configuración de escalabilidad automática para configurar las notificaciones.

Active las casillas para enviar un correo electrónico al administrador de la suscripción o a los coadministradores. También puede escribir una lista de direcciones de correo electrónico a las que enviar notificaciones.

Escriba un URI de webhook para enviar una notificación a un servicio web. También puede agregar encabezados personalizados a la solicitud de webhook. Por ejemplo, puede agregar un token de autenticación en el encabezado, los parámetros de consulta o agregar un encabezado personalizado para identificar el origen de la solicitud.

Captura de pantalla que muestra la pestaña de notificación en la página de configuración de escalabilidad automática.

Autenticación en Webhook

El webhook puede autenticarse automáticamente mediante un token, donde el URI del webhook se guarda con un identificador de token como un parámetro de consulta. Por ejemplo, https://mysamplealert/webcallback?tokenid=123-abc456-7890&myparameter2=value123.

Esquema de carga de Webhook de notificación de escalado automático

Cuando se genera la notificación de escalado automático, los metadatos siguientes se incluyen en la carga de 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.com/#resource/subscriptions/123456ab-9876-a1b2-a2b1-123a567b9f8767/resourceGroups/rg-001/providers/Microsoft.Web/serverfarms/ScaleableAppServicePlan",
        "resourceRegion": "West Central US",
        "oldCapacity": "1",
        "newCapacity": "2"
    },
    "properties": {
        "key1": "value1",
        "key2": "value2"
    }   
}
Campo Mandatory Descripción
status Estado que indica que se ha generado una acción de escalabilidad automática.
operation Para aumentar las instancias es "Escalabilidad horizontal" y para reducirlas es "Reducción horizontal".
context Contexto de la acción de escalabilidad automática.
timestamp Marca de tiempo de cuando se desencadenó la acción de escalabilidad automática.
id Identificador de Resource Manager de la configuración de escalabilidad automática.
name Nombre de la configuración de escalabilidad automática.
detalles Explicación de la acción que realizó el servicio de escalabilidad automática y el cambio en el recuento de instancias.
subscriptionId Identificador de suscripción del recurso de destino que se va a escalar.
resourceGroupName Nombre del grupo de recursos del recurso de destino que se va a escalar.
resourceName Nombre del recurso de destino que se va a escalar.
resourceType Tres valores admitidos: "microsoft.classiccompute/domainnames/slots/roles" - Roles de Azure Cloud Services, "microsoft.compute/virtualmachinescalesets" - Azure Virtual Machine Scale Sets y "Microsoft.Web/serverfarms" - Característica Web App de Azure Monitor.
resourceId Identificador de Resource Manager del recurso de destino que se va a escalar.
portalLink Vínculo de Azure Portal a la página de resumen del recurso de destino.
oldCapacity Recuento de instancias (antiguo) actual cuando la escalabilidad automática realizó una acción de escalado.
newCapacity Nuevo recuento de instancias al que la escalabilidad automática escaló el recurso.
properties No Opcional. Conjunto de pares <Clave, Valor> (por ejemplo, Diccionario <Cadena, Cadena>). El campo de propiedades es opcional. En una interfaz de usuario personalizada o un flujo de trabajo basado en una aplicación lógica, puede especificar claves y valores que se pueden pasar utilizando la carga. Una forma alternativa de pasar propiedades personalizadas de vuelta a la llamada de webhook saliente es usar el propio URI de webhook (como parámetros de consulta).