Surveillance des événements des scripts Canary avec Amazon EventBridge - Amazon CloudWatch

Surveillance des événements des scripts Canary avec Amazon EventBridge

Les règles d'événement Amazon EventBridge peuvent vous avertir lorsque les scripts Canary changent de statut ou terminent des exécutions. EventBridge fournit un flux d'événements système en temps quasi réel qui décrivent les modifications apportées aux ressources AWS. CloudWatch Synthetics envoie ces événements à EventBridge dans la mesure du possible. La livraison dans la mesure du possible signifie que CloudWatch Synthetics tente d'envoyer tous les événements à EventBridge, mais dans de rares cas, un événement peut ne pas être livré. EventBridge traite tous les événements reçus au moins une fois. En outre, les écouteurs d'événements peuvent ne pas recevoir les événements dans l'ordre dans lequel ces derniers se produisent.

Note

Amazon EventBridge est un service de bus d'événements que vous pouvez utiliser pour connecter vos applications à des données provenant de diverses sources. Pour plus d'informations, consultez Qu'est-ce qu'Amazon EventBridge ? dans le Guide de l'utilisateur Amazon EventBridge.

CloudWatch Synthetics émet un événement lorsqu'un script Canary change d'état ou termine une exécution. Vous pouvez créer une règle EventBridge qui inclut un modèle d'événement correspondant à tous les types d'événements envoyés de CloudWatch Synthetics ou uniquement à des types d'événements spécifiques. Lorsqu'un script Canary déclenche une règle, EventBridge appelle les actions cibles définies dans la règle. Cela vous permet d'envoyer des notifications, de capturer des informations sur les événements et d'effectuer des actions correctives en réponse à un changement d'état ou à la fin de l'exécution d'un script Canary. Par exemple, vous pouvez créer des règles pour les cas d'utilisation suivants :

  • Réaliser un examen lors de l'échec de l'exécution d'un script Canary

  • Réaliser un examen lorsqu'un script Canary passe à l'état ERROR

  • Suivre le cycle de vie d'un script Canary

  • Contrôler la réussite ou l'échec de l'exécution d'un script Canary dans le cadre d'un flux de travail

Exemple d'événements de CloudWatch Synthetics

Cette section répertorie des exemples d'événements de CloudWatch Synthetics. Pour plus d'informations sur le format des événements, consultez Événements et modèles d'événements dans EventBridge.

Changement de statut d'un canary

Dans ce type d'événement, les valeurs de current-state et previous-state peuvent être les suivantes :

CREATING | READY | STARTING | RUNNING | UPDATING | STOPPING | STOPPED | ERROR

{ "version": "0", "id": "8a99ca10-1e97-2302-2d64-316c5dedfd61", "detail-type": "Synthetics Canary Status Change", "source": "aws.synthetics", "account": "123456789012", "time": "2021-02-09T22:19:43Z", "region": "us-east-1", "resources": [], "detail": { "account-id": "123456789012", "canary-id": "EXAMPLE-dc5a-4f5f-96d1-989b75a94226", "canary-name": "events-bb-1", "current-state": "STOPPED", "previous-state": "UPDATING", "source-location": "NULL", "updated-on": 1612909161.767, "changed-config": { "executionArn": { "previous-value": "arn:aws:lambda:us-east-1:123456789012:function:cwsyn-events-bb-1-af3e3a05-dc5a-4f5f-96d1-989EXAMPLE:1", "current-value": "arn:aws:lambda:us-east-1:123456789012:function:cwsyn-events-bb-1-af3e3a05-dc5a-4f5f-96d1-989EXAMPLE:2" }, "vpcId": { "current-value": "NULL" }, "testCodeLayerVersionArn": { "previous-value": "arn:aws:lambda:us-east-1:123456789012:layer:cwsyn-events-bb-1-af3e3a05-dc5a-4f5f-96d1-989EXAMPLE:1", "current-value": "arn:aws:lambda:us-east-1:123456789012:layer:cwsyn-events-bb-1-af3e3a05-dc5a-4f5f-96d1-989EXAMPLE:2" } }, "message": "Canary status has changed" } }

Réussite de l'exécution d'un canary

{ "version": "0", "id": "989EXAMPLE-f4a5-57a7-1a8f-d9cc768a1375", "detail-type": "Synthetics Canary TestRun Successful", "source": "aws.synthetics", "account": "123456789012", "time": "2021-02-09T22:24:01Z", "region": "us-east-1", "resources": [], "detail": { "account-id": "123456789012", "canary-id": "989EXAMPLE-dc5a-4f5f-96d1-989b75a94226", "canary-name": "events-bb-1", "canary-run-id": "c6c39152-8f4a-471c-9810-989EXAMPLE", "artifact-location": "cw-syn-results-123456789012-us-east-1/canary/us-east-1/events-bb-1-ec3-28ddbe266797/2021/02/09/22/23-41-200", "test-run-status": "PASSED", "state-reason": "null", "canary-run-timeline": { "started": 1612909421, "completed": 1612909441 }, "message": "Test run result is generated successfully" } }

Échec de l'exécution d'un canary

{ "version": "0", "id": "2644b18f-3e67-5ebf-cdfd-bf9f91392f41", "detail-type": "Synthetics Canary TestRun Failure", "source": "aws.synthetics", "account": "123456789012", "time": "2021-02-09T22:24:27Z", "region": "us-east-1", "resources": [], "detail": { "account-id": "123456789012", "canary-id": "af3e3a05-dc5a-4f5f-96d1-9989EXAMPLE", "canary-name": "events-bb-1", "canary-run-id": "0df3823e-7e33-4da1-8194-b04e4d4a2bf6", "artifact-location": "cw-syn-results-123456789012-us-east-1/canary/us-east-1/events-bb-1-ec3-989EXAMPLE/2021/02/09/22/24-21-275", "test-run-status": "FAILED", "state-reason": "\"Error: net::ERR_NAME_NOT_RESOLVED \"" "canary-run-timeline": { "started": 1612909461, "completed": 1612909467 }, "message": "Test run result is generated successfully" } }

Il est possible que les événements soient dupliqués ou hors service. Pour déterminer l'ordre des événements, utilisez la propriété time.

Conditions préalables à la création de règles EventBridge

Avant de créer une règle EventBridge pour CloudWatch Synthetics, vous devriez procéder comme suit :

  • Familiarisez-vous avec les événements, les règles et les cibles dans EventBridge.

  • Créez et configurez les cibles appelées par vos règles EventBridge. Les règles peuvent appeler de nombreux types de cibles, notamment :

    • Rubriques Amazon SNS

    • Fonctions AWS Lambda

    • Flux Kinesis

    • Files d'attente Amazon SQS

Pour de plus amples informations, veuillez consulter Qu'est-ce qu'Amazon EventBridge ? et Prise en main d'Amazon EventBridge dans le Guide de l'utilisateur Amazon EventBridge.

Création d'une règle EventBridge (CLI)

Les étapes de l'exemple suivant créent une règle EventBridge qui publie une rubrique Amazon SNS lorsque le script Canary nommé my-canary-name dans us-east-1 termine une exécution ou change d'état.

  1. Créez la règle .

    aws events put-rule \ --name TestRule \ --region us-east-1 \ --event-pattern "{\"source\": [\"aws.synthetics\"], \"detail\": {\"canary-name\": [\"my-canary-name\"]}}"

    Les propriétés qui sont omises dans le modèle sont ignorées.

  2. Ajoutez la rubrique en tant que cible de règle.

    • Remplacez topic-arn par l'Amazon Resource Name (ARN) de votre rubrique Amazon SNS.

    aws events put-targets \ --rule TestRule \ --targets "Id"="1","Arn"="topic-arn"
    Note

    Pour autoriser Amazon EventBridge à appeler votre rubrique cible, vous devez ajouter une stratégie basée sur les ressources à votre rubrique. Pour plus d'informations, consultez Autorisations Amazon SNS dans le Guide de l'utilisateur Amazon EventBridge.

Pour de plus amples informations, veuillez consulter Événements et modèles d'événements dans EventBridge dans le Guide de l'utilisateur Amazon EventBridge.