Verwenden von automatischen Skalierungsvorgängen zum Senden von E-Mail- und Webhook-Warnbenachrichtigungen in Azure Monitor

In diesem Artikel wird beschrieben, wie Sie Benachrichtigungen einrichten, damit Sie basierend auf Autoskalierungsvorgängen in Azure bestimmte Web-URLs aufrufen oder E-Mails senden können.

webhooks

Mit Webhooks können Sie HTTP-Anforderungen an einen bestimmten URL-Endpunkt (Rückruf-URL) senden, wenn ein bestimmtes Ereignis oder ein bestimmter Trigger auftritt. Mithilfe von Webhooks können Sie Prozesse automatisieren und optimieren, indem Sie den automatischen Informationsaustausch zwischen verschiedenen Systemen oder Anwendungen ermöglichen. Verwenden Sie Webhooks, um benutzerdefinierten Code, Benachrichtigungen oder andere Aktionen auszulösen, die ausgeführt werden, wenn ein Ereignis für die automatische Skalierung auftritt.

E-Mail

Sie können E-Mails an eine beliebige gültige E-Mail-Adresse senden, wenn ein Autoskalierungsereignis auftritt. Administratoren und Co-Administratoren des Abonnements, in der die Regel ausgeführt wird, werden ebenfalls benachrichtigt.

Konfigurieren von Benachrichtigungen

Verwenden Sie das Azure-Portal, die CLI, PowerShell oder Resource Manager-Vorlagen, um Benachrichtigungen zu konfigurieren.

Einrichten von Benachrichtigungen mithilfe des Azure-Portals.

Wählen Sie auf der Einstellungsseite für die Autoskalierung die Registerkarte Benachrichtigen aus, um Benachrichtigungen zu konfigurieren.

Aktivieren Sie die Kontrollkästchen, um eine E-Mail an den Abonnementadministrator oder die Co-Administratoren zu senden. Außerdem können Sie eine Liste mit E-Mail-Adressen eingeben, an die Benachrichtigungen gesendet werden sollen.

Geben Sie einen Webhook-URI ein, um eine Benachrichtigung an einen Webdienst zu senden. Sie können der Webhookanforderung auch benutzerdefinierte Header hinzufügen. Beispielsweise können Sie ein Authentifizierungstoken im Header, Abfrageparameter oder einen benutzerdefinierten Header hinzufügen, um die Quelle der Anforderung zu identifizieren.

Screenshot der Registerkarte „Benachrichtigen“ auf der Seite „Einstellungen für automatische Skalierung“.

Authentifizierung in Webhooks

Die Authentifizierung des Webhooks kann mithilfe der Token-basierten Authentifizierung erfolgen, wobei der Webhook-URI mit einer Token-ID (z. B. einem Abfrageparameter) gespeichert wird. Beispiel: https://mysamplealert/webcallback?tokenid=123-abc456-7890&myparameter2=value123.

Benachrichtigung über automatische Skalierung mit dem Webhook-Nutzlastschema

Beim Generieren der Benachrichtigung über automatische Skalierung werden die folgenden Metadaten in die Webhook-Nutzlast aufgenommen:

{
    "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"
    }   
}
Feld Obligatorisch. BESCHREIBUNG
status Ja Status, der angibt, dass ein Autoskalierungsvorgang generiert wurde.
operation Ja Für eine Zunahme von Instanzen ist es „Aufskalieren“. Für eine Verringerung der Instanzen ist es „Abskalieren“.
context Ja Der Kontext des Autoskalierungsvorgangs.
timestamp Ja Zeitstempel der Auslösung des Autoskalierungsvorgangs.
id Ja Resource Manager-ID der Einstellung für die automatische Skalierung.
name Ja Name der Einstellung für die automatische Skalierung.
Details Ja Erläuterung der Aktion, die der Dienst für die automatische Skalierung ausgeführt hat, und der Änderung der Instanzenanzahl.
subscriptionId Ja Abonnement-ID der Zielressource, die skaliert wird.
resourceGroupName Ja Ressourcengruppenname der Zielressource, die skaliert wird
resourceName Ja Name der Zielressource, die skaliert wird.
resourceType Ja Drei unterstützte Werte: „microsoft.classiccompute/domainnames/slots/roles“ – Azure Cloud Services-Rollen, „microsoft.compute/virtualmachinescalesets“ – Azure-VM-Skalierungsgruppen und „Microsoft.Web/serverfarms“ – Web-App-Feature von Azure Monitor.
resourceId Ja Resource Manager-ID der Zielressource, die skaliert wird.
portalLink Ja Link vom Azure-Portal zur Zusammenfassungsseite der Zielressource.
oldCapacity Ja Aktuelle (alte) Anzahl von Instanzen, wenn die automatische Skalierung eine Skalierungsaktion durchgeführt hat.
newCapacity Ja Neue Anzahl der Instanzen, auf die die automatische Skalierung die Ressource skaliert hat.
properties Nein Optional. Eine Reihe von <Schlüssel-Wert>-Paaren (Beispiel: Wörterbuch <Zeichenfolge, Zeichenfolge>). Das Feld "properties" ist optional. In einer angepassten Benutzeroberfläche oder einem auf Logik-Apps basierenden Workflow können Sie Schlüssel und Werte eingeben, die mithilfe der Nutzlast übergeben werden können. Alternativ können benutzerdefinierte Eigenschaften über den Webhook-URI selbst (als Abfrageparameter) an den ausgehenden Webhook-Aufruf zurückgegeben werden.