Tutoriel : Création d'un EventBridge canal filtrant les événements source - Amazon EventBridge

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 : Création d'un EventBridge canal filtrant les événements source

Dans ce didacticiel, vous allez créer un canal qui connecte une source de flux DynamoDB à une cible de file d’attente Amazon SQS. Cela inclut la spécification d’un modèle d’événement pour le canal à utiliser lors du filtrage des événements destinés à être livrés à la file d’attente. Vous allez ensuite tester le canal pour vérifier que seuls les événements souhaités sont livrés.

Prérequis : créer la source et la cible

Avant de créer le canal, vous devez créer la source et la cible auxquelles le canal doit se connecter. Dans ce cas, un flux de données Amazon DynamoDB sert de source pour le canal et une file d’attente Amazon SQS sert de cible pour le canal.

Pour simplifier cette étape, vous pouvez utiliser AWS CloudFormation pour déployer les ressources source et cible. Pour ce faire, vous allez créer un CloudFormation modèle définissant les ressources suivantes :

  • La source du canal

    Une table Amazon DynamoDB nommée pipe-tutorial-source, avec un flux permettant de fournir un flux ordonné d’informations sur les modifications apportées aux éléments de la table DynamoDB.

  • La cible du canal

    Une file d’attente Amazon SQS nommée pipe-tutorial-target, destinée à recevoir le flux DynamoDB d’événements provenant de votre canal.

Pour créer le CloudFormation modèle de provisionnement des ressources du canal
  1. Copiez le modèle de texte JSON dans la section AWS CloudFormation modèle pour générer des prérequis ci-dessous.

  2. Enregistrez le modèle sous forme de fichier JSON (par exemple, ~/pipe-tutorial-resources.json).

Utilisez ensuite le fichier modèle que vous venez de créer pour approvisionner une CloudFormation pile.

Note

Une fois que vous aurez créé votre CloudFormation pile, les AWS ressources qu'elle fournit vous seront facturées.

Fournir les prérequis du didacticiel à l'aide de la CLI AWS
  • Exécutez la commande d’interface de ligne de commande suivante, où --template-body spécifie l’emplacement de votre modèle de fichier :

    aws cloudformation create-stack --stack-name pipe-tuturial-resources --template-body file://~/pipe-tutorial-resources.json
Provisionner les prérequis du didacticiel à l'aide de la console CloudFormation
  1. Ouvrez la AWS CloudFormation console à l'adresse https://console.aws.amazon.com/cloudformation.

  2. Sélectionnez Piles, puis Créer une pile et choisissez Avec de nouvelles ressources (standard).

    CloudFormation affiche l'assistant de création d'une pile.

  3. Pour Prérequis - Préparer le modèle, laissez Le modèle est prêt sélectionné par défaut.

  4. Sous Spécifier un modèle, sélectionnez Charger un fichier de modèle, puis choisissez le fichier et sélectionnez Suivant.

  5. Configurez la pile et les ressources qu’elle allouera :

    • Dans le champ Nom de la pile, saisissez pipe-tuturial-resources.

    • Pour Paramètres, conservez les noms par défaut de la table DynamoDB et de la file d’attente Amazon SQS.

    • Choisissez Suivant.

  6. Choisissez Suivant, puis Soumettre.

    CloudFormation crée la pile et provisionne les ressources définies dans le modèle.

Pour plus d'informations CloudFormation, voir Qu'est-ce que c'est AWS CloudFormation ? dans le guide de AWS CloudFormation l'utilisateur.

Étape 1 : Créer le canal

Une fois la source et la cible du canal allouées, vous pouvez créer le canal pour connecter les deux services.

Créez le tube à l'aide de la EventBridge console
  1. Ouvrez la EventBridge console Amazon à l'adresse https://console.aws.amazon.com/events/.

  2. Dans le volet de navigation, choisissez Pipelines.

  3. Choisissez Créer un pipeline.

  4. Pour Nom, nommez votre canal pipe-tutorial.

  5. Spécifiez la source du flux de données DynamoDB :

    1. Sous Informations, dans Source, sélectionnez Flux de données DynamoDB.

      EventBridge affiche les paramètres de configuration de source spécifiques à DynamoDB.

    2. Pour Flux DynamoDB, sélectionnez pipe-tutorial-source.

      Laissez Position de départ définie sur la valeur par défaut, Latest.

    3. Choisissez Suivant.

  6. Spécifiez et testez un modèle d’événement pour filtrer les événements :

    Le filtrage vous permet de contrôler les événements que les canaux envoient à l’enrichissement ou à la cible. Le canal envoie uniquement les événements qui correspondent au modèle d’événement à l’enrichissement ou à la cible.

    Pour de plus amples informations, veuillez consulter Filtrage des événements dans Amazon EventBridge Pipes.

    Note

    Seuls les événements envoyés à l’enrichissement ou à la cible vous sont facturés.

    1. Sous Exemple d’événement - facultatif, laissez Événements AWS sélectionné et assurez-vous que Exemple d’événement de flux DynamoDB 1 est sélectionné.

      Il s’agit de l’exemple d’événement que vous allez utiliser pour tester notre modèle d’événement.

    2. Sous Modèle d’événement, entrez le modèle d’événement suivant :

      { "eventName": ["INSERT", "MODIFY"] }
    3. Choisissez Modèle de test.

      EventBridge affiche un message indiquant que l'exemple d'événement correspond au modèle d'événement. En effet, la valeur eventName de l’exemple d’événement est définie sur INSERT.

    4. Choisissez Suivant.

  7. Choisissez Suivant pour ne pas spécifier d’enrichissement.

    Dans cet exemple, vous ne sélectionnerez pas d’enrichissement. Les enrichissements vous permettent de sélectionner un service pour améliorer les données provenant de la source avant de les envoyer à la cible. Pour en savoir plus, consultez Enrichissement des événements dans Amazon EventBridge Pipes.

  8. Spécifiez votre file d’attente Amazon SQS en tant que cible de canal :

    1. Sous Informations, pour Service cible, sélectionnez File d’attente Amazon SQS.

    2. Pour File d’attente, sélectionnez pipe-tutorial-target.

    3. Laissez la section Transformateur d’entrée cible vide.

      Pour de plus amples informations, veuillez consulter Transformation EventBridge des entrées Amazon Pipes.

  9. Choisissez Créer un pipeline.

    EventBridge crée le tuyau et affiche la page détaillée du tuyau. Le canal est prêt une fois que son statut passe à Running.

Étape 2 : Confirmer que le canal filtre les événements

Le canal est configuré, mais n’a pas encore reçu les événements de la table.

Pour tester le canal, vous allez mettre à jour les entrées de la table DynamoDB. Chaque mise à jour génère des événements que le flux DynamoDB envoie à notre canal. Certains correspondront au modèle d’événement que vous avez spécifié, d’autres non. Vous pouvez ensuite examiner la file d’attente Amazon SQS pour vous assurer que le canal n’a livré que les événements correspondant à notre modèle d’événement.

Mise à jour des éléments de table pour générer des événements
  1. Ouvrez la console DynamoDB à l'adresse. https://console.aws.amazon.com/dynamodb/

  2. Dans le volet de navigation de gauche, sélectionnez Tables. Sélectionnez la table pipe-tutorial-source.

    DynamoDB affiche la page détaillée de la table pipe-tutorial-source.

  3. Sélectionnez Explorer les éléments de table, puis choisissez Créer un élément.

    DynamoDB affiche la page Créer un élément.

  4. Sous Attributs, créez un nouvel élément de table :

    1. Pour Album, entrez Album A.

    2. Pour Artiste, entrez Artist A.

    3. Choisissez Créer un élément.

  5. Mettez à jour l’élément de table :

    1. Sous Éléments retournés, choisissez Album A.

    2. Sélectionnez Ajouter un nouvel attribut, puis Chaîne.

    3. Entrez une nouvelle valeur pour Song, Song A.

    4. Sélectionnez Enregistrer les modifications.

  6. Supprimez l’élément de table :

    1. Sous Éléments retournés, cochez Album A.

    2. Dans le menu Actions, sélectionnez Supprimer des éléments.

Vous avez effectué trois mises à jour sur l’élément de table ; cela génère trois événements pour le flux de données DynamoDB :

  • Un événement INSERT correspondant à la création de l’élément.

  • Un événement MODIFY correspondant à l’ajout d’un attribut à l’élément.

  • Un événement REMOVE correspondant à la suppression de l’élément.

Cependant, le modèle d’événement que vous avez spécifié pour le canal doit filtrer les événements qui ne sont pas des événements INSERT ou MODIFY. Vérifiez ensuite que le canal a livré les événements attendus à la file d’attente.

Vérification que les événements attendus ont été livrés à la file d’attente
  1. Ouvrez la console Amazon SQS à l'adresse. https://console.aws.amazon.com/sqs/

  2. Choisissez la file d’attente pipe-tutorial-target.

    Amazon SQS affiche la page détaillée de la file d’attente.

  3. Sélectionnez Envoyer et recevoir des messages, puis sous Recevoir des messages, choisissez Rechercher des messages.

    La file d’attente interroge le canal, puis répertorie les événements qu’elle reçoit.

  4. Choisissez le nom de l’événement pour voir le code JSON de l’événement qui a été livré.

La file d’attente doit comporter deux événements : un pour lequel eventName est défini sur INSERT et un autre pour lequel eventName est défini sur MODIFY. Cependant, le canal n’a pas livré l’événement de suppression de l’élément de table, car le paramètre eventName de cet événement était défini sur REMOVE, ce qui ne correspondait pas au modèle d’événement que vous avez spécifié dans le canal.

Étape 3 : Nettoyer vos ressources

Commencez par supprimer le canal lui-même.

Supprimer le tube à l'aide de la EventBridge console
  1. Ouvrez la EventBridge console Amazon à l'adresse https://console.aws.amazon.com/events/.

  2. Dans le volet de navigation, choisissez Pipelines.

  3. Sélectionnez le canal pipe-tutorial et choisissez Supprimer.

Supprimez ensuite la CloudFormation pile afin d'éviter d'être facturée pour l'utilisation continue des ressources qu'elle contient.

Supprimer les prérequis du didacticiel à l'aide de la CLI AWS
  • Exécutez la commande d’interface de ligne de commande suivante, où --stack-name spécifie le nom de votre pile :

    aws cloudformation delete-stack --stack-name pipe-tuturial-resources
Supprimer les prérequis du didacticiel à l'aide de la console AWS CloudFormation
  1. Ouvrez la AWS CloudFormation console à l'adresse https://console.aws.amazon.com/cloudformation.

  2. Sur la page Piles, sélectionnez la pile, puis Supprimer.

  3. Sélectionnez Supprimer pour confirmer votre action.

AWS CloudFormation modèle pour générer des prérequis

Utilisez le JSON ci-dessous pour créer un CloudFormation modèle permettant de provisionner les ressources source et cible nécessaires à ce didacticiel.

{ "AWSTemplateFormatVersion": "2010-09-09", "Description" : "Provisions resources to use with the EventBridge Pipes tutorial. You will be billed for the AWS resources used if you create a stack from this template.", "Parameters" : { "SourceTableName" : { "Type" : "String", "Default" : "pipe-tutorial-source", "Description" : "Specify the name of the table to provision as the pipe source, or accept the default." }, "TargetQueueName" : { "Type" : "String", "Default" : "pipe-tutorial-target", "Description" : "Specify the name of the queue to provision as the pipe target, or accept the default." } }, "Resources": { "PipeTutorialSourceDynamoDBTable": { "Type": "AWS::DynamoDB::Table", "Properties": { "AttributeDefinitions": [{ "AttributeName": "Album", "AttributeType": "S" }, { "AttributeName": "Artist", "AttributeType": "S" } ], "KeySchema": [{ "AttributeName": "Album", "KeyType": "HASH" }, { "AttributeName": "Artist", "KeyType": "RANGE" } ], "ProvisionedThroughput": { "ReadCapacityUnits": 10, "WriteCapacityUnits": 10 }, "StreamSpecification": { "StreamViewType": "NEW_AND_OLD_IMAGES" }, "TableName": { "Ref" : "SourceTableName" } } }, "PipeTutorialTargetQueue": { "Type": "AWS::SQS::Queue", "Properties": { "QueueName": { "Ref" : "TargetQueueName" } } } } }