Usare le azioni di scalabilità automatica per inviare notifiche di avviso di webhook e posta elettronica in Monitoraggio di Azure

Questo articolo illustra come configurare le notifiche in modo da poter chiamare URL Web specifici o inviare messaggi di posta elettronica in base alle azioni di scalabilità automatica in Azure.

Webhook

I webhook consentono di inviare richieste HTTP a un endpoint URL specifico (URL di callback) quando si verifica un determinato evento o un trigger. Usando i webhook, è possibile automatizzare e semplificare i processi abilitando lo scambio automatico di informazioni tra sistemi o applicazioni diversi. Usare webhook per attivare codice personalizzato, notifiche o altre azioni da eseguire quando si verifica un evento di scalabilità automatica.

Email

È possibile inviare un messaggio di posta elettronica a qualsiasi indirizzo di posta elettronica valido quando si verifica un evento di scalabilità automatica. Anche gli amministratori e i coamministratori della sottoscrizione in cui viene eseguita la regola vengono notificati.

Configurare le notifiche

Usare i modelli di portale di Azure, interfaccia della riga di comando, PowerShell o Resource Manager per configurare le notifiche.

Configurare le notifiche usando il portale di Azure.

Selezionare la scheda Notifica nella pagina delle impostazioni di scalabilità automatica per configurare le notifiche.

Selezionare le caselle di controllo per inviare un messaggio di posta elettronica all'amministratore della sottoscrizione o ai coamministratori. È anche possibile immettere un elenco di indirizzi di posta elettronica a cui inviare notifiche.

Immettere un URI webhook per inviare una notifica a un servizio Web. È anche possibile aggiungere intestazioni personalizzate alla richiesta webhook. Ad esempio, è possibile aggiungere un token di autenticazione nell'intestazione, nei parametri di query o aggiungere un'intestazione personalizzata per identificare l'origine della richiesta.

Screenshot che mostra la scheda notifica nella pagina delle impostazioni di scalabilità automatica.

Autenticazione nei webhook

Il webhook può eseguire l'autenticazione usando l'autenticazione basata su token, in cui si salva l'URI del webhook con un ID token come parametro di query. Ad esempio: https://mysamplealert/webcallback?tokenid=123-abc456-7890&myparameter2=value123.

Schema di payload del webhook di notifica di scalabilità automatica

Quando viene generata la notifica di scalabilità automatica, nel payload del webhook vengono inclusi i metadati seguenti:

{
    "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 Obbligatorio Descrizione
status Stato che indica che è stata generata un'azione di scalabilità automatica.
operation Per un aumento delle istanze, è "Scale Out". Per una diminuzione delle istanze, si tratta di "Scale In".
contesto Contesto dell'azione di scalabilità automatica.
timestamp Timestamp quando è stata attivata l'azione di scalabilità automatica.
id Resource Manager ID dell'impostazione di scalabilità automatica.
name Nome dell'impostazione di scalabilità automatica.
dettagli Spiegazione dell'azione eseguita dal servizio di scalabilità automatica e della modifica nel conteggio delle istanze.
subscriptionId ID sottoscrizione della risorsa di destinazione ridimensionata.
resourceGroupName Nome del gruppo di risorse della risorsa di destinazione ridimensionata.
resourceName Nome della risorsa di destinazione ridimensionata.
resourceType Tre valori supportati: "microsoft.classiccompute/domainnames/slots/roles" - Ruoli di Servizi cloud di Azure, "microsoft.compute/virtualmachinescalesets" - Azure set di scalabilità di macchine virtuali e "Microsoft.Web/serverfarms" - Funzionalità app Web di Monitoraggio di Azure.
resourceId Resource Manager ID della risorsa di destinazione ridimensionata.
portalLink portale di Azure collegamento alla pagina di riepilogo della risorsa di destinazione.
oldCapacity Numero di istanze correnti (precedente) quando la scalabilità automatica ha eseguito un'azione di scalabilità.
newCapacity Numero di nuove istanze a cui è stata ridimensionata automaticamente la risorsa.
properties No facoltativo. Set di <coppie Chiave, Valore> , ad esempio String dizionario <, Stringa>. Il campo properties è facoltativo. In un flusso di lavoro personalizzato basato su app per l'app per la logica è possibile immettere chiavi e valori che possono essere passati usando il payload. Un modo alternativo per passare le proprietà personalizzate alla chiamata webhook in uscita consiste nell'usare l'URI webhook stesso (come parametri di query).