

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.

# Tutoriel : envoyer des événements à Amazon Kinesis à l'aide de schémas EventBridge
<a name="eb-relay-events-kinesis-stream"></a>

Vous pouvez envoyer [des événements](eb-events.md) d'appel d' AWS API EventBridge vers un flux [Amazon Kinesis, créer des applications Kinesis Data Streams](https://docs.aws.amazon.com/streams/latest/dev/introduction.html) et traiter de grandes quantités de données. Dans ce didacticiel, vous allez créer un flux Kinesis, puis créer une [règle](eb-rules.md) dans la EventBridge console qui envoie des événements à ce flux lorsqu'une EC2 instance [Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html) s'arrête.

**Topics**
+ [Conditions préalables](#eb-stream-prerequisite)
+ [Étape 1 : Créer un flux Amazon Kinesis](#eb-stream-create-stream)
+ [Étape 2 : création d’une règle](#eb-stream-create-rule)
+ [Étape 3 : test de la règle](#eb-stream-test-rule)
+ [Étape 4 : Vérifier que l’événement a été envoyé](#eb-stream-verify-event)
+ [Étape 5 : Nettoyer vos ressources](#cleanup)

## Conditions préalables
<a name="eb-stream-prerequisite"></a>

Dans ce didacticiel, vous allez utiliser :
+ Utilisez le AWS CLI pour utiliser les flux Kinesis.

  Pour l'installer AWS CLI, consultez la section [Installation, mise à jour et désinstallation de la AWS CLI version 2.](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html)

**Note**  
Ce didacticiel utilise AWS les événements et le registre de `aws.events` schémas intégré. Vous pouvez également créer une EventBridge règle basée sur le schéma de vos événements personnalisés en les ajoutant manuellement à un registre de schémas personnalisé ou en utilisant la découverte de schémas.   
Pour plus d'informations sur les schémas, consultez [EventBridge Schémas Amazon](eb-schema.md). Pour plus d’informations sur la création d’une règle avec d’autres options de modèle d’événement, consultez [Création de règles à l'aide du générateur amélioré](eb-create-rule-visual.md).

## Étape 1 : Créer un flux Amazon Kinesis
<a name="eb-stream-create-stream"></a>

Pour créer un flux, utilisez la commande à l'invite de `create-stream` AWS CLI commande.

```
aws kinesis create-stream --stream-name {{test}} --shard-count 1
```

Lorsque le statut du flux est `ACTIVE`, le flux est prêt. Pour vérifier le statut du flux, utilisez la commande `describe-stream`.

```
aws kinesis describe-stream --stream-name {{test}}
```

## Étape 2 : création d’une règle
<a name="eb-stream-create-rule"></a>

Créez une règle pour envoyer des événements à votre stream lorsque vous arrêtez une EC2 instance Amazon.

**Pour créer une règle**

1. Ouvrez la EventBridge console Amazon à l'adresse [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/).

1. Dans le panneau de navigation, choisissez **Rules**.

1. Choisissez **Créer une règle**.

1. Saisissez un nom et une description pour la règle. Par exemple, nommez la règle `TestRule`

1. Pour **Bus d’événements**, sélectionnez **Par défaut**.

1. Pour **Type de règle**, choisissez **Règle avec un modèle d’événement**.

1. Choisissez **Suivant**.

1. Dans **Source de l'événement**, sélectionnez **AWS événements ou événements EventBridge partenaires**.

1. Pour **Méthode de création**, choisissez **Utiliser le schéma**.

1. Pour **Event pattern** (Modèle d’événement), procédez comme suit :

   1. Pour **Type de schéma**, choisissez **Sélectionner un schéma dans le registre des schémas**.

   1. Pour **Registre des schémas**, choisissez **aws.events** dans la liste déroulante.

   1. Pour **Schema**, choisissez **aws.ec2@** dans la liste EC2 InstanceStateChangeNotification déroulante.

      EventBridge affiche le schéma d'événement sous **Modèles**.

      EventBridge affiche un astérisque rouge à côté des propriétés requises *pour l'événement*, et non pour le modèle d'événement. 

   1. Dans **Modèles**, définissez les propriétés de filtre d’événements suivantes : 

      1. Sélectionnez **\+ Modifier** en regard de la propriété **state**. 

         Laissez **Relation** vide. Pour le champ **Valeur**, saisissez `running`. Choisissez **Définir**. 

      1. Sélectionnez **\+ Modifier** en regard de la propriété **source**. 

         Laissez **Relation** vide. Pour le champ **Valeur**, saisissez `aws.ec2`. Choisissez **Définir**. 

      1. Sélectionnez **\+ Modifier** en regard de la propriété **detail-type**. 

         Laissez **Relation** vide. Pour le champ **Valeur**, saisissez `EC2 Instance State-change Notification`. Choisissez **Définir**. 

   1. Pour afficher le modèle d’événement que vous avez construit, choisissez **Générer un modèle d’événement au format JSON**

      EventBridge affiche le modèle d'événement au format JSON :

      ```
      {
        "detail": {
          "state": ["running"]
        },
        "detail-type": ["EC2 Instance State-change Notification"],
        "source": ["aws.ec2"]
      }
      ```

1. Choisissez **Suivant**.

1. Pour **Types de cibles**, choisissez **service AWS **.

1. Pour **Sélectionner une cible**, choisissez **Flux Kinesis** dans la liste déroulante.

1. Pour **Flux**, sélectionnez le flux Kinesis que vous avez créé dans la section **Étape 1 : Créer un flux Amazon Kinesis**. Dans cet exemple, sélectionnez `test`.

1. Pour **Rôle d’exécution**, choisissez **Créer un rôle pour cette ressource spécifique**.

1. Choisissez **Suivant**.

1. Choisissez **Suivant**.

1. Consultez les détails de la règle et choisissez **Create rule** (Créer une règle).

## Étape 3 : test de la règle
<a name="eb-stream-test-rule"></a>

Pour tester votre règle, arrêtez une EC2 instance Amazon. Attendez quelques minutes que l'instance s'arrête, puis vérifiez vos CloudWatch métriques pour vérifier que votre fonction s'est exécutée.

**Pour tester votre règle en arrêtant une instance**

1. Ouvrez la EC2 console Amazon à l'adresse [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Lancez une instance. Pour plus d'informations, consultez [Launch Your Instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/LaunchingAndUsingInstances.html) dans le *guide de EC2 l'utilisateur Amazon*.

1. Ouvrez la EventBridge console Amazon à l'adresse [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/).

1. Dans le panneau de navigation, choisissez **Rules**.

   Choisissez le nom de la règle que vous avez créée, puis choisissez **Metrics for the rule (Métriques de la règle)**.

1. (Facultatif) Lorsque vous avez terminé, mettez fin à l'instance. Pour plus d'informations, consultez [Résilier votre instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html) dans le *guide de EC2 l'utilisateur Amazon*.

## Étape 4 : Vérifier que l’événement a été envoyé
<a name="eb-stream-verify-event"></a>

Vous pouvez utiliser le AWS CLI pour obtenir l'enregistrement du flux afin de vérifier que l'événement a été envoyé.

**Pour obtenir l'enregistrement**

1. Pour commencer à lire à partir de votre flux Kinesis, à l’invite de commande, utilisez la commande `get-shard-iterator`.

   ```
   aws kinesis get-shard-iterator --shard-id shardId-000000000000 --shard-iterator-type TRIM_HORIZON --stream-name {{test}}
   ```

   Voici un exemple de sortie.

   ```
   {
       "ShardIterator": "AAAAAAAAAAHSywljv0zEgPX4NyKdZ5wryMzP9yALs8NeKbUjp1IxtZs1Sp+KEd9I6AJ9ZG4lNR1EMi+9Md/nHvtLyxpfhEzYvkTZ4D9DQVz/mBYWRO6OTZRKnW9gd+efGN2aHFdkH1rJl4BL9Wyrk+ghYG22D2T1Da2EyNSH1+LAbK33gQweTJADBdyMwlo5r6PqcP2dzhg="
   }
   ```

1. Pour obtenir l'enregistrement, utilisez la commande `get-records` suivante. Utilisez l’itérateur de partition dans la sortie de l’étape précédente.

   ```
   aws kinesis get-records --shard-iterator {{AAAAAAAAAAHSywljv0zEgPX4NyKdZ5wryMzP9yALs8NeKbUjp1IxtZs1Sp+KEd9I6AJ9ZG4lNR1EMi+9Md/nHvtLyxpfhEzYvkTZ4D9DQVz/mBYWRO6OTZRKnW9gd+efGN2aHFdkH1rJl4BL9Wyrk+ghYG22D2T1Da2EyNSH1+LAbK33gQweTJADBdyMwlo5r6PqcP2dzhg=}}
   ```

   Si la commande aboutit, elle demande des enregistrements de votre flux correspondant à la partition spécifiée. Vous pouvez recevoir zéro ou plusieurs enregistrements. Les enregistrements renvoyés peuvent ne pas représenter tous les enregistrements de votre flux. Si vous ne recevez pas les données attendues, continuez d'appeler `get-records`. 

1. Dans Kinesis, les enregistrements sont encodés en Base64. Utilisez un décodeur Base64 pour décoder les données afin de pouvoir vérifier qu’il s’agit bien de l’événement qui été envoyé au flux au format JSON.

## Étape 5 : Nettoyer vos ressources
<a name="cleanup"></a>

Vous pouvez maintenant supprimer les ressources que vous avez créées pour ce didacticiel, sauf si vous souhaitez les conserver. En supprimant AWS les ressources que vous n'utilisez plus, vous évitez des frais inutiles sur votre AWS compte.

**Pour supprimer la ou les EventBridge règles**

1. Ouvrez la [page Règles](https://console.aws.amazon.com/events/home#/rules) de la EventBridge console.

1. Sélectionnez la ou les règles que vous avez créées.

1. Sélectionnez **Delete (Supprimer)**.

1. Sélectionnez **Delete (Supprimer)**.

**Pour supprimer le ou les flux Kinesis**

1. Ouvrez la [page Flux de données](https://console.aws.amazon.com/kinesis/home#/streams/list) de la console Kinesis.

1. Sélectionnez le ou les flux que vous avez créés.

1. Sélectionnez **Actions**, **Supprimer**.

1. Entrez **supprimer** dans le champ et choisissez **Supprimer**.