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.
Fournissez des enregistrements DynamoDB à Amazon S3 à l'aide de Kinesis Data Streams et Firehose avec AWS CDK
Créée par Shashank Shrivastava (AWS) et Daniel Matuki da Cunha (AWS)
Récapitulatif
Ce modèle fournit un exemple de code et une application permettant de transmettre des enregistrements d'Amazon DynamoDB à Amazon Simple Storage Service (Amazon S3) à l'aide d'Amazon Kinesis Data Streams et d'Amazon Data Firehose. L'approche du modèle utilise des constructions AWS Cloud Development Kit (AWS CDK) L3 et inclut un exemple de la manière d'effectuer une transformation des données AWS Lambda avant que les données ne soient livrées au compartiment S3 cible sur le cloud Amazon Web Services (AWS).
Kinesis Data Streams enregistre les modifications apportées au niveau des éléments dans les tables DynamoDB et les réplique dans le flux de données Kinesis requis. Vos applications peuvent accéder au flux de données Kinesis et afficher les modifications au niveau élément en quasi-temps réel. Kinesis Data Streams donne également accès à d'autres services Amazon Kinesis, tels que Firehose et Amazon Managed Service pour Apache Flink. Cela signifie que vous pouvez créer des applications qui fournissent des tableaux de bord en temps réel, génèrent des alertes, mettent en œuvre des prix et des publicités dynamiques et effectuent des analyses de données sophistiquées.
Vous pouvez utiliser ce modèle pour vos cas d'utilisation en matière d'intégration de données. Par exemple, les véhicules de transport ou les équipements industriels peuvent envoyer de gros volumes de données vers une table DynamoDB. Ces données peuvent ensuite être transformées et stockées dans un lac de données hébergé dans Amazon S3. Vous pouvez ensuite interroger et traiter les données et prévoir tout défaut potentiel en utilisant des services sans serveur tels qu'Amazon Athena, Amazon Redshift Spectrum, Amazon Rekognition et. AWS Glue
Conditions préalables et limitations
Prérequis
Un actif Compte AWS.
AWS Command Line Interface (AWS CLI), installé et configuré. Pour plus d'informations, consultez la section Mise en route avec le AWS CLI dans la AWS CLI documentation.
Node.js (18.x+) et npm, installés et configurés. Pour plus d'informations, consultez la section Téléchargement et installation de Node.js et de npm
dans la npm
documentation.aws-cdk (2.x+), installé et configuré. Pour plus d'informations, consultez la section Mise en route avec le AWS CDK dans la AWS CDK documentation.
Le référentiel GitHub aws-dynamodb-kinesisfirehose-s3-ingestion
, cloné et configuré sur votre machine locale. Exemples de données existants pour la table DynamoDB. Les données doivent utiliser le format suivant :
{"SourceDataId": {"S": "123"},"MessageData":{"S": "Hello World"}}
Architecture
Le schéma suivant montre un exemple de flux de travail permettant de transférer des enregistrements de DynamoDB vers Amazon S3 à l'aide de Kinesis Data Streams et Firehose.

Le schéma suivant illustre le flux de travail suivant :
Les données sont ingérées à l'aide d'Amazon API Gateway en tant que proxy pour DynamoDB. Vous pouvez également utiliser n'importe quelle autre source pour ingérer des données dans DynamoDB.
Les modifications au niveau des articles sont générées en temps quasi réel dans Kinesis Data Streams pour être transmises à Amazon S3.
Kinesis Data Streams envoie les enregistrements à Firehose pour transformation et livraison.
Une fonction Lambda convertit les enregistrements d'un format d'enregistrement DynamoDB au format JSON, qui contient uniquement les noms et valeurs des attributs des éléments d'enregistrement.
Outils
Services AWS
AWS Cloud Development Kit (AWS CDK)est un framework de développement logiciel qui vous aide à définir et à provisionner l'infrastructure cloud AWS sous forme de code.
AWS CDK Toolkit est un kit de développement cloud en ligne de commande qui vous permet d'interagir avec votre AWS CDK application.
AWS Command Line Interface (AWS CLI) est un outil open source qui vous permet d'interagir Services AWS par le biais de commandes dans votre interface de ligne de commande.
AWS CloudFormationvous aide à configurer les AWS ressources, à les approvisionner rapidement et de manière cohérente, et à les gérer tout au long de leur cycle de vie, de bout Comptes AWS en bout Régions AWS.
Référentiel de code
Le code de ce modèle est disponible dans le référentiel GitHub aws-dynamodb-kinesisfirehose-s3-ingestion
Épopées
Tâche | Description | Compétences requises |
---|---|---|
Installez les dépendances. | Sur votre machine locale, installez les dépendances à partir des
| Développeur d'applications, AWS général |
Générez le CloudFormation modèle. |
| Développeur d'applications, AWS général, AWS DevOps |
Tâche | Description | Compétences requises |
---|---|---|
Vérifiez et déployez les ressources. |
| Développeur d'applications, AWS général, AWS DevOps |
Tâche | Description | Compétences requises |
---|---|---|
Ingérez vos exemples de données dans la table DynamoDB. | Envoyez une demande à votre table DynamoDB en exécutant la commande suivante dans : AWS CLI
exemple :
Par défaut, le NoteVous utilisez différentes approches pour ajouter des données dans une table DynamoDB. Pour plus d'informations, consultez la section Charger des données dans des tables dans la documentation DynamoDB. | Développeur d’applications |
Vérifiez qu'un nouvel objet est créé dans le compartiment S3. | Connectez-vous au compartiment S3 AWS Management Console et surveillez-le pour vérifier qu'un nouvel objet a été créé avec les données que vous avez envoyées. Pour plus d'informations, consultez GetObjectla documentation Amazon S3. | Développeur d'applications, AWS général |
Tâche | Description | Compétences requises |
---|---|---|
Nettoyez les ressources. | Exécutez la | Développeur d'applications, AWS général |
Ressources connexes
s-3 static-site-stack .ts
(GitHub dépôt) aws-apigateway-dynamodb module
(GitHub référentiel) aws-kinesisstreams-kinesisfirehose-sModule 3
(GitHub référentiel) Modifier la capture des données pour DynamoDB Streams (documentation DynamoDB)