

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Surveiller les événements liés aux canaris avec Amazon EventBridge
<a name="monitoring-events-eventbridge"></a>

Les règles relatives aux EventBridge événements Amazon peuvent vous avertir lorsque les canaris changent de statut ou terminent des courses. EventBridgefournit un near-real-time flux d'événements système décrivant les modifications apportées aux AWS ressources. CloudWatch *Synthetics envoie ces événements EventBridge à dans la mesure du possible.* Dans le meilleur des cas, CloudWatch Synthetics essaie d'envoyer tous les événements EventBridge à, mais dans de rares cas, il se peut qu'un événement ne soit pas organisé. 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 ?](https://docs.aws.amazon.com/eventbridge/latest/userguide/what-is-amazon-eventbridge.html) dans le *guide de EventBridge l'utilisateur Amazon*.

CloudWatch Synthetics émet un événement lorsqu'un canari change d'état ou termine une course. Vous pouvez créer une EventBridge règle qui inclut un modèle d'événement correspondant à tous les types d'événements envoyés par CloudWatch Synthetics, ou qui ne correspond qu'à des types d'événements spécifiques. Lorsqu'un canari déclenche une règle, il EventBridge invoque 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

## Exemples d'événements de CloudWatch Synthetics
<a name="synthetics-event-examples"></a>

Cette section répertorie des exemples d'événements de CloudWatch Synthetics. Pour plus d'informations sur le format des événements, consultez la section [Événements et modèles d'événements dans EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html). 

 **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` \$1 `READY` \$1 `STARTING` \$1 `RUNNING` \$1 `UPDATING` \$1 `STOPPING` \$1 `STOPPED` \$1 `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
<a name="create-events-rule-prereqs"></a>

Avant de créer une EventBridge règle pour CloudWatch Synthetics, vous devez effectuer les opérations suivantes :
+ Familiarisez-vous avec les événements, les règles et les cibles dans EventBridge.
+ Créez et configurez les cibles invoquées par vos EventBridge règles. Les règles peuvent appeler de nombreux types de cibles, notamment :
  + Rubriques Amazon SNS
  + AWS Lambda fonctions
  + Flux Kinesis
  + Files d'attente Amazon SQS

Pour plus d'informations, consultez [Qu'est-ce qu'Amazon EventBridge ?](https://docs.aws.amazon.com/eventbridge/latest/userguide/what-is-amazon-eventbridge.html) et [Getting started with Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-getting-set-up.html) dans le *guide de EventBridge l'utilisateur Amazon*.

## Création d'une EventBridge règle (CLI)
<a name="create-events-rule-cli"></a>

Les étapes décrites dans l'exemple suivant créent une EventBridge règle qui publie une rubrique Amazon SNS lorsque le canari nommé `my-canary-name` `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.

1. Ajoutez la rubrique en tant que cible de règle.
   + *topic-arn*Remplacez-le par le nom de ressource Amazon (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 sujet cible, vous devez ajouter une politique basée sur les ressources à votre sujet. Pour plus d'informations, consultez les [autorisations Amazon SNS](https://docs.aws.amazon.com/eventbridge/latest/userguide/resource-based-policies-eventbridge.html#sns-permissions) dans le guide de * EventBridge l'utilisateur Amazon*.

Pour plus d'informations, consultez la section [Événements et modèles d'événements EventBridge dans](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html) le *guide de EventBridge l'utilisateur Amazon*.