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
Vous pouvez envoyer des événements d' AWS APIappel EventBridge vers un flux Amazon Kinesis, créer des applications Kinesis Data Streams 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 dans la EventBridge console qui envoie des événements à ce flux lorsqu'une EC2 instance Amazon s'arrête.
Étapes :
Prérequis
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.
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. 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 qui réagissent aux événements sur Amazon EventBridge.
Étape 1 : Créer un flux Amazon Kinesis
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
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
Ouvrez la EventBridge console Amazon à l'adresse https://console.aws.amazon.com/events/
. -
Dans le volet de navigation, choisissez Règles.
-
Choisissez Créer une règle.
-
Saisissez un nom et une description pour la règle. Par exemple, nommez la règle
TestRule
-
Pour Bus d’événements, sélectionnez Par défaut.
-
Pour Type de règle, choisissez Règle avec un modèle d’événement.
-
Choisissez Suivant.
-
Dans Source de l'événement, sélectionnez AWS événements ou événements EventBridge partenaires.
-
Pour Méthode de création, choisissez Utiliser le schéma.
-
Pour Event pattern (Modèle d’événement), procédez comme suit :
-
Pour Type de schéma, choisissez Sélectionner un schéma dans le registre des schémas.
-
Pour Registre des schémas, choisissez aws.events dans la liste déroulante.
-
Pour Schema, choisissez aws.ec2@ dans la liste EC2InstanceStateChangeNotification 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.
-
Dans Modèles, définissez les propriétés de filtre d’événements suivantes :
Sélectionnez + Modifier en regard de la propriété state.
Laissez Relation vide. Pour le champ Valeur, saisissez
running
. Choisissez Définir.Sélectionnez + Modifier en regard de la propriété source.
Laissez Relation vide. Pour le champ Valeur, saisissez
aws.ec2
. Choisissez Définir.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.
-
Pour afficher le modèle d'événement que vous avez créé, choisissez Générer un modèle d'événement dans JSON
EventBridge affiche le modèle d'événement dans JSON :
{ "detail": { "state": ["running"] }, "detail-type": ["EC2 Instance State-change Notification"], "source": ["aws.ec2"] }
-
-
Choisissez Suivant.
-
Pour Types de cibles, choisissez service AWS .
-
Pour Sélectionner une cible, choisissez Flux Kinesis dans la liste déroulante.
-
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
. -
Pour Rôle d’exécution, choisissez Créer un rôle pour cette ressource spécifique.
-
Choisissez Suivant.
-
Choisissez Suivant.
-
Consultez les détails de la règle et choisissez Create rule (Créer une règle).
Étape 3 : test de la règle
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
Ouvrez la EC2 console Amazon à l'adresse https://console.aws.amazon.com/ec2/
. -
Lancez une instance. Pour plus d'informations, consultez Launch Your Instance dans le guide de EC2 l'utilisateur Amazon.
Ouvrez la EventBridge console Amazon à l'adresse https://console.aws.amazon.com/events/
. -
Dans le volet de navigation, choisissez Règles.
Choisissez le nom de la règle que vous avez créée, puis choisissez Metrics for the rule (Métriques de la règle).
-
(Facultatif) Lorsque vous avez terminé, mettez fin à l'instance. Pour plus d'informations, consultez Résilier votre instance dans le guide de EC2 l'utilisateur Amazon.
Étape 4 : Vérifier que l’événement a été envoyé
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
-
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=" }
-
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
. -
Dans Kinesis, les enregistrements sont encodés en Base64. Utilisez un décodeur Base64 pour décoder les données afin de vérifier qu'il s'agit bien de l'événement envoyé au flux sous forme de formulaire. JSON
Étape 5 : Nettoyer vos ressources
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
-
Ouvrez la page Règles
de la EventBridge console. -
Sélectionnez la ou les règles que vous avez créées.
-
Sélectionnez Delete.
-
Sélectionnez Delete.
Pour supprimer le ou les flux Kinesis
-
Ouvrez la page Flux de données
de la console Kinesis. -
Sélectionnez le ou les flux que vous avez créés.
-
Sélectionnez Actions, Supprimer.
-
Entrez supprimer dans le champ et choisissez Supprimer.