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.
Intégration de DynamoDB à Amazon EventBridge
Amazon DynamoDB propose DynamoDB Streams pour la capture des données de modification, ce qui permet de capturer les modifications au niveau des éléments dans les tables DynamoDB. DynamoDB Streams peut invoquer des fonctions Lambda pour traiter ces modifications, ce qui permet une intégration basée sur les événements avec d'autres services et applications. DynamoDB Streams prend également en charge le filtrage, ce qui permet un traitement des événements efficace et ciblé.
DynamoDB Streams prend en charge jusqu'à deux consommateurs simultanés par partition et prend en charge le filtrage via le filtrage des événements Lambda afin que seuls les éléments répondant à des critères spécifiques soient traités. Certains clients peuvent avoir besoin de prendre en charge plus de deux clients. D'autres peuvent avoir besoin d'enrichir les événements de modification avant qu'ils ne soient traités, ou d'utiliser un filtrage et un routage plus avancés.
L'intégration de DynamoDB peut répondre EventBridge à ces exigences.
Amazon EventBridge est un service sans serveur qui utilise des événements pour connecter les composants de l'application entre eux, ce qui vous permet de créer plus facilement des applications évolutives pilotées par des événements. EventBridge propose une intégration native avec Amazon DynamoDB EventBridge via Pipes, permettant ainsi un flux de données fluide entre DynamoDB et un bus. EventBridge Ce bus peut ensuite être diffusé vers plusieurs applications et services via un ensemble de règles et de cibles.
Fonctionnement
L'intégration entre DynamoDB EventBridge et les canaux utilise DynamoDB Streams pour capturer une séquence chronologique de modifications au niveau des éléments dans une table DynamoDB. Chaque enregistrement capturé de cette manière contient les données modifiées dans la table.

Un EventBridge canal consomme les événements provenant de DynamoDB Streams et les achemine vers une cible telle qu'un EventBridge bus (un bus d'événements est un routeur qui reçoit des événements et les transmet à des destinations, également appelées cibles). La livraison dépend des règles qui correspondent au contenu de l'événement. En option, le canal inclut également la possibilité de filtrer des événements spécifiques et d'enrichir les données des événements avant de les envoyer à la cible.
Bien qu'il soit EventBridge compatible avec plusieurs types de cibles, un choix courant lors de la mise en œuvre d'une conception de ventilateur consiste à utiliser une fonction Lambda comme cible. L'exemple suivant illustre une intégration avec une cible de fonction Lambda.
Création d'une intégration via la console
Suivez les étapes ci-dessous pour créer une intégration à l'aide du AWS Management Console.
-
Activez DynamoDB Streams sur la table source en suivant les étapes décrites dans la section du guide Activation d'un flux du développeur DynamoDB. Si DynamoDB Streams est déjà activé dans la table source, vérifiez qu'il y a actuellement moins de deux consommateurs. Les utilisateurs peuvent être des fonctions Lambda, des tables globales DynamoDB, des intégrations Amazon DynamoDB Zero-ETL avec OpenSearch Amazon Service ou des applications qui lisent directement à partir de flux, par exemple via l'adaptateur DynamoDB Streams Kinesis.
-
Créez un bus d' EventBridge événements en suivant les étapes décrites dans la section Création d'un bus d' EventBridge événements Amazon du guide de l' EventBridge utilisateur.
-
Lors de la création du bus d'événements, activez la découverte du schéma.
-
-
Créez un EventBridge canal en suivant les étapes décrites dans la section Création d'un EventBridge canal Amazon du guide de l' EventBridge utilisateur.
-
Lors de la configuration de la source, dans le champ Source, sélectionnez DynamoDB et dans le champ DynamoDB Streams, sélectionnez le nom du flux de table source.
-
Lors de la configuration de la cible, dans le champ Service cible, sélectionnez le bus d'EventBridge événements et dans le champ Bus d'événements comme cible, sélectionnez le bus d'événements créé à l'étape 2.
-
-
Écrivez un exemple d'élément dans la table DynamoDB source pour déclencher un événement. Cela permettra de déduire EventBridge le schéma à partir de l'élément d'exemple. Ce schéma peut être utilisé pour créer des règles pour les événements de routage. Par exemple, si vous implémentez un modèle de conception qui implique de surcharger les attributs, vous souhaiterez peut-être déclencher des règles différentes en fonction de la valeur de votre clé de tri. Vous trouverez des informations sur la manière d'écrire un élément dans DynamoDB dans la section Utilisation des éléments et des attributs du guide du développeur DynamoDB.
-
Créez un exemple de fonction Lambda Python à utiliser comme cible en suivant les étapes décrites dans la section Création de fonctions Lambda avec Python du guide du développeur Lambda. Lors de la création de votre fonction, vous pouvez utiliser l'exemple de code ci-dessous pour démontrer l'intégration. Lorsqu'il est invoqué, il imprime le
NewImage
etOldImage
reçu avec l'événement, qui peut être consulté dans CloudWatch les journaux.import json def lambda_handler(event, context): dynamodb = event.get('detail', {}).get('dynamodb', {}) new_image = dynamodb.get('NewImage') old_image = dynamodb.get('OldImage') if new_image: print("NewImage:", json.dumps(new_image, indent=2)) if old_image: print("OldImage:", json.dumps(old_image, indent=2)) return {'statusCode': 200, 'body': json.dumps(event)}
-
Créez une EventBridge règle qui acheminera les événements vers votre nouvelle fonction Lambda en suivant les étapes décrites dans le guide de l' EventBridge utilisateur de la section Créer une règle qui réagit aux événements.
-
Lorsque vous définissez le détail de la règle, sélectionnez le nom du bus d'événements que vous avez créé à l'étape 2 en tant que bus d'événements.
-
Lorsque vous créez le modèle d'événement, suivez le guide du schéma existant. Ici, vous pouvez sélectionner le registre des schémas découverts et le schéma découvert pour votre événement. Cela vous permet de configurer un modèle d'événement spécifique à votre cas d'utilisation qui achemine uniquement les messages correspondant à des attributs spécifiques. Par exemple, si vous souhaitez établir une correspondance uniquement sur les éléments DynamoDB où le SK
“user#”
commence par, vous devez utiliser une configuration comme celle-ci. -
Cliquez sur Générer un modèle d'événement au format JSON une fois que vous avez fini de concevoir un modèle par rapport à votre schéma. Si vous souhaitez plutôt faire correspondre tous les événements qui apparaissent sur DynamoDB Streams, utilisez le JSON suivant pour le modèle d'événement.
{ "source": ["aws.dynamodb"] }
-
Lorsque vous sélectionnez des cibles, suivez le guide de AWS service. Dans le champ Sélectionner une cible, choisissez « Fonction Lambda ». Dans le champ Fonction, sélectionnez la fonction Lambda que vous avez créée à l'étape 5.
-
-
Vous pouvez désormais arrêter la découverte de schémas sur votre bus d'événements en suivant les étapes décrites dans la section Démarrage ou arrêt de la découverte de schémas sur les bus d'événements du guide de EventBridge l'utilisateur.
-
Écrivez un deuxième exemple d'élément dans la table DynamoDB source pour déclencher un événement. Vérifiez que l'événement a été correctement traité à chaque étape.
-
Consultez la CloudWatch métrique PutEventsApproximateSuccessCountde votre bus d'événements en suivant la EventBridge section Monitoring Amazon du guide de l' EventBridge utilisateur.
-
Consultez les journaux des fonctions de votre fonction Lambda en suivant la section Surveillance et résolution des problèmes liés aux fonctions Lambda du guide du développeur Lambda. Si votre fonction Lambda utilise l'exemple de code fourni, les flux
NewImage
etOldImage
provenant de DynamoDB Streams devraient être imprimés CloudWatch dans le groupe de journaux Logs. -
Consultez le nombre d'erreurs et le taux de réussite (%) de votre fonction Lambda en suivant la section Surveillance et résolution des problèmes des fonctions Lambda du guide du développeur Lambda.
-
Étapes suivantes
Cet exemple fournit une intégration de base avec une seule fonction Lambda comme cible. Pour mieux comprendre les configurations plus complexes, telles que la création de règles multiples, la création de cibles multiples, l'intégration à d'autres services et l'enrichissement des événements, consultez le guide de l' EventBridge utilisateur complet : Getting Started with EventBridge.
Note
Soyez conscient de tous EventBridge les quotas susceptibles d'être pertinents pour votre candidature. Bien que la capacité de DynamoDB Streams évolue en fonction de votre table, EventBridge les quotas sont distincts. Les quotas courants à prendre en compte dans une application de grande envergure sont la limite d'accélération des invocations pour les transactions par seconde et la limite d'PutEventsaccélération pour les transactions par seconde. Ces quotas spécifient le nombre d'appels qui peuvent être envoyés aux cibles et le nombre d'événements qui peuvent être placés dans le bus par seconde.