Utilizar ações de dimensionamento automático para enviar notificações de alerta de e-mail e webhook no Azure Monitor

Este artigo mostra-lhe como configurar notificações para que possa chamar URLs Web específicos ou enviar e-mails com base em ações de dimensionamento automático no Azure.

Webhooks

Os webhooks permitem-lhe enviar pedidos HTTP para um ponto final de URL específico (URL de chamada de retorno) quando ocorre um determinado evento ou acionador. Com os webhooks, pode automatizar e simplificar os processos ao ativar a troca automática de informações entre diferentes sistemas ou aplicações. Utilize webhooks para acionar código personalizado, notificações ou outras ações para executar quando ocorre um evento de dimensionamento automático.

E-mail

Pode enviar um e-mail para qualquer endereço de e-mail válido quando ocorrer um evento de dimensionamento automático. Os administradores e coadministradores da subscrição onde a regra está em execução também são notificados.

Configurar Notificações

Utilize os modelos portal do Azure, CLI, PowerShell ou Resource Manager para configurar notificações.

Configure notificações com o portal do Azure.

Selecione o separador Notificar na página de definições de dimensionamento automático para configurar notificações.

Selecione as caixas de verificação para enviar um e-mail ao administrador ou coadministradores da subscrição. Também pode introduzir uma lista de endereços de e-mail para os quais enviar notificações.

Introduza um URI de webhook para enviar uma notificação para um serviço Web. Também pode adicionar cabeçalhos personalizados ao pedido do webhook. Por exemplo, pode adicionar um token de autenticação no cabeçalho, parâmetros de consulta ou adicionar um cabeçalho personalizado para identificar a origem do pedido.

Uma captura de ecrã a mostrar o separador Notificar na página de definições de dimensionamento automático.

Autenticação em webhooks

O webhook pode autenticar através da autenticação baseada em tokens, onde guarda o URI do webhook com um ID de token como parâmetro de consulta. Por exemplo, https://mysamplealert/webcallback?tokenid=123-abc456-7890&myparameter2=value123.

Esquema de payload de webhook de notificação de dimensionamento automático

Quando a notificação de dimensionamento automático é gerada, os seguintes metadados são incluídos no payload do 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 Obrigatório Description
status Yes Estado que indica que foi gerada uma ação de dimensionamento automático.
operation Yes Para um aumento de instâncias, é "Aumentar Horizontalmente". Para uma diminuição das instâncias, é "Redução Horizontal".
contexto Yes Contexto de ação de dimensionamento automático.
carimbo de data/hora Yes Carimbo de data/hora quando a ação de dimensionamento automático foi acionada.
ID Yes Resource Manager ID da definição de dimensionamento automático.
name Yes Nome da definição de dimensionamento automático.
detalhes Yes Explicação da ação que o serviço de dimensionamento automático tomou e da alteração na contagem de instâncias.
subscriptionId Yes ID da subscrição do recurso de destino que está a ser dimensionado.
resourceGroupName Yes Nome do grupo de recursos do recurso de destino que está a ser dimensionado.
resourceName Yes Nome do recurso de destino que está a ser dimensionado.
resourceType Yes Três valores suportados: "microsoft.classiccompute/domainnames/slots/roles" - Funções de Serviços Cloud do Azure, "microsoft.compute/virtualmachinescalesets" – Conjuntos de Dimensionamento de Máquinas Virtuais do Azure e "Microsoft.Web/serverfarms" – funcionalidade de Aplicação Web do Azure Monitor.
resourceId Yes Resource Manager ID do recurso de destino que está a ser dimensionado.
portalLink Yes portal do Azure ligação para a página de resumo do recurso de destino.
oldCapacity Yes Contagem de instâncias atuais (antigas) quando o dimensionamento automático tomou uma ação de dimensionamento.
newCapacity Yes Contagem de novas instâncias para a qual o dimensionamento automático dimensionou o recurso.
propriedades No Opcional. Conjunto de Pares Chave <, Valor> (por exemplo, Cadeia de Dicionário <, Cadeia>). O campo de propriedades é opcional. Numa interface de utilizador personalizada ou num fluxo de trabalho baseado em aplicações lógicas, pode introduzir chaves e valores que podem ser transmitidos através do payload. Uma forma alternativa de transmitir propriedades personalizadas novamente para a chamada de webhook de saída é utilizar o próprio URI do webhook (como parâmetros de consulta).