Utilisation d’actions de mise à l’échelle automatique pour envoyer des notifications d’alertes par webhook et par courrier électronique dans Azure Monitor

Cet article explique comment configurer des notifications pour vous permettre d’appeler des URL web spécifiques ou d’envoyer des e-mails en fonction d’actions de mise à l’échelle automatique dans Azure.

Points d'ancrage Web (Webhooks)

Les webhooks vous permettent d’envoyer des requêtes HTTP à un point de terminaison d’URL spécifique (URL de rappel) lorsqu’un événement ou un déclencheur spécifique se produit. À l’aide de webhooks, vous pouvez automatiser et simplifier les processus en activant l’échange automatique d’informations entre différents systèmes ou applications. Utilisez des webhooks pour déclencher du code personnalisé, des notifications ou d’autres actions à exécuter lorsqu’un événement de mise à l’échelle automatique se produit.

Courriel

Vous pouvez envoyer un e-mail à n’importe quelle adresse e-mail valide lorsqu’un événement de mise à l’échelle automatique se produit.

Remarque

À compter du 3 avril 2024, vous ne pourrez pas ajouter de nouveaux coadministrateurs pour les notifications de mise à l’échelle automatique Azure. Les administrateurs Azure Classic seront mis hors service le 31 août 2024 et vous ne serrez plus en mesure d’envoyer des notifications de mise à l’échelle automatique Azure à l’aide des administrateurs et des coadministrateurs après le 31 août 2024. Pour plus d’informations, consultez Préparer la mise hors service des coadministrateurs

Configurez les notifications

Utilisez les modèles Portail Azure, CLI, PowerShell ou Resource Manager pour configurer les notifications.

Configurez les notifications à l’aide du Portail Azure.

Sélectionnez l’onglet Notifier dans la page paramètres de mise à l’échelle automatique pour configurer les notifications.

Entrez une liste d’adresses e-mail à laquelle envoyer des notifications.

Entrez un URI de webhook pour envoyer une notification à un service web. Vous pouvez également ajouter des en-têtes personnalisés à la requête de webhook. Par exemple, vous pouvez ajouter un jeton d’authentification dans l’en-tête, les paramètres de requête ou ajouter un en-tête personnalisé pour identifier la source de la demande.

Une capture d’écran montrant l’onglet notification sur la page des paramètres de mise à l’échelle automatique.

Authentification dans des webhooks

Le webhook peut s’authentifier à l’aide de l’authentification par jeton, où vous enregistrez l’URI du webhook avec un ID de jeton comme paramètre de requête. Par exemple : https://mysamplealert/webcallback?tokenid=123-abc456-7890&myparameter2=value123.

Schéma de la charge utile du webhook de notification de mise à l’échelle automatique

Lorsque la notification de mise à l’échelle automatique est générée, les métadonnées suivantes sont incluses dans la charge utile du webhook :

{
    "version": "1.0",
    "status": "Activated",
    "operation": "Scale Out",
    "context": {
        "timestamp": "2023-06-22T07:01:47.8926726Z",
        "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
        "resourceGroupName": "rg-001",
        "resourceName": "ScaleableAppServicePlan",
        "resourceType": "microsoft.web/serverfarms",
        "resourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rg-001/providers/Microsoft.Web/serverfarms/ScaleableAppServicePlan",
        "portalLink": "https://portal.azure.com/#resource/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rg-001/providers/Microsoft.Web/serverfarms/ScaleableAppServicePlan",
        "resourceRegion": "West Central US",
        "oldCapacity": "1",
        "newCapacity": "2"
    },
    "properties": {
        "key1": "value1",
        "key2": "value2"
    }   
}
Champ Obligatoire Descriptif
statut Oui État qui indique qu’une action de mise à l’échelle automatique a été générée.
opération Oui Pour une augmentation du nombre d’instances, il s’agit de « Scale Out ». Pour une diminution du nombre d’instances, il s’agit de « Scale In ».
contexte Oui Contexte de l’action de mise à l’échelle automatique.
horodatage Oui Horodatage du déclenchement de l’action de mise à l’échelle automatique.
pièce d'identité Oui ID Resource Manager du paramètre de mise à l’échelle automatique.
nom Oui Nom du paramètre de mise à l’échelle automatique.
détails Oui Explication de l’action exécutée par le service de mise à l’échelle automatique et de la modification du nombre d’instances.
ID d'abonnement Oui ID d’abonnement de la ressource cible en cours de mise à l’échelle.
nomDuGroupeDeRessources Oui Nom de groupe de ressources de la ressource cible mise à l’échelle.
nomDeRessource Oui Nom de la ressource cible en cours de mise à l’échelle.
type de ressource Oui Trois valeurs sont prises en charge : « microsoft.classiccompute/domainnames/slots/roles » - rôles des services cloud Azure, « microsoft.compute/virtualmachinescalesets » - ensembles de machines virtuelles Azure, et « Microsoft.Web/serverfarms » - fonctionnalité des applications Web de Azure Monitor.
identifiant de ressource Oui ID Resource Manager de la ressource cible mise à l’échelle.
portalLink Oui Lien du portail Azure vers la page de résumé de la ressource cible.
oldCapacity Oui Nombre d’instances (anciennes) actuel lors de l’exécution d’une action de mise à l’échelle par la mise à l’échelle automatique.
newCapacity Oui Nouveau nombre d’instances auquel la mise à l’échelle automatique a mis la ressource à l’échelle.
propriétés Non facultatif. Jeu de paires <Clé, Valeur> (par exemple, Dictionary <String, String>). Le champ properties est facultatif. Dans un flux de travail basé sur une application logique ou une interface utilisateur personnalisée, vous pouvez entrer des clés et des valeurs transmissibles à l’aide de la charge utile. Une autre manière de transmettre des propriétés personnalisées à l’appel webhook sortant consiste à utiliser l’URI du webhook (sous la forme de paramètres de requête).