

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Stellen Sie DynamoDB-Datensätze mithilfe von Kinesis Data Streams und Firehose an Amazon S3 bereit mit AWS CDK
<a name="deliver-dynamodb-records-to-amazon-s3-using-kinesis-data-streams-and-amazon-data-firehose-with-aws-cdk"></a>

*Shashank Shrivastava und Daniel Matuki da Cunha, Amazon Web Services*

## Zusammenfassung
<a name="deliver-dynamodb-records-to-amazon-s3-using-kinesis-data-streams-and-amazon-data-firehose-with-aws-cdk-summary"></a>

Dieses Muster enthält Beispielcode und eine Anwendung für die Übermittlung von Datensätzen von Amazon DynamoDB an Amazon Simple Storage Service (Amazon S3) mithilfe von Amazon Kinesis Data Streams und Amazon Data Firehose. Der Ansatz des Musters verwendet [AWS Cloud Development Kit (AWS CDK) L3-Konstrukte](https://docs.aws.amazon.com/cdk/latest/guide/getting_started.html) und beinhaltet ein Beispiel dafür, wie eine Datentransformation durchgeführt wird, AWS Lambda bevor Daten an den Ziel-S3-Bucket in der Amazon Web Services (AWS) Cloud geliefert werden.

Kinesis Data Streams zeichnet Änderungen auf Elementebene in DynamoDB-Tabellen auf und repliziert sie in den erforderlichen Kinesis-Datenstrom. Ihre Anwendungen können auf den Kinesis Data Stream zugreifen und die Änderungen auf Elementebene nahezu in Echtzeit anzeigen. Kinesis Data Streams bietet auch Zugriff auf andere Amazon Kinesis Kinesis-Services wie Firehose und Amazon Managed Service für Apache Flink. Das bedeutet, dass Sie Anwendungen entwickeln können, die Echtzeit-Dashboards bereitstellen, Warnmeldungen generieren, dynamische Preisgestaltung und Werbung implementieren und anspruchsvolle Datenanalysen durchführen.

Sie können dieses Muster für Ihre Anwendungsfälle zur Datenintegration verwenden. Beispielsweise können Transportfahrzeuge oder Industrieanlagen große Datenmengen an eine DynamoDB-Tabelle senden. Diese Daten können dann transformiert und in einem in Amazon S3 gehosteten Data Lake gespeichert werden. Anschließend können Sie die Daten abfragen und verarbeiten und potenzielle Fehler vorhersagen, indem Sie serverlose Dienste wie Amazon Athena, Amazon Redshift Spectrum, Amazon Rekognition und verwenden. AWS Glue

## Voraussetzungen und Einschränkungen
<a name="deliver-dynamodb-records-to-amazon-s3-using-kinesis-data-streams-and-amazon-data-firehose-with-aws-cdk-prereqs"></a>

*Voraussetzungen*
+ Ein aktiver. AWS-Konto
+ AWS Command Line Interface (AWS CLI), installiert und konfiguriert. Weitere Informationen finden Sie AWS CLI in [der AWS CLI Dokumentation unter Erste Schritte mit](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html) dem.
+ Node.js (18.x\$1) und npm, installiert und konfiguriert. Weitere Informationen finden Sie in der Dokumentation unter [Node.js und npm herunterladen und installieren](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm). `npm`
+ aws-cdk (2.x\$1), installiert und konfiguriert. Weitere Informationen finden Sie in der Dokumentation unter [Erste Schritte mit dem](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html). AWS CDK AWS CDK 
+ Das GitHub [aws-dynamodb-kinesisfirehose-s3-Ingestion-Repository](https://github.com/aws-samples/aws-dynamodb-kinesisfirehose-s3-ingestion/), geklont und auf Ihrem lokalen Computer konfiguriert.
+ Bestehende Beispieldaten für die DynamoDB-Tabelle. Die Daten müssen das folgende Format haben: `{"SourceDataId": {"S": "123"},"MessageData":{"S": "Hello World"}}`

## Architektur
<a name="deliver-dynamodb-records-to-amazon-s3-using-kinesis-data-streams-and-amazon-data-firehose-with-aws-cdk-architecture"></a>

Das folgende Diagramm zeigt einen Beispiel-Workflow für die Übermittlung von Datensätzen von DynamoDB an Amazon S3 mithilfe von Kinesis Data Streams und Firehose.

![\[Ein Beispiel-Workflow für die Übermittlung von Datensätzen von DynamoDB an Amazon S3 mithilfe von Kinesis Data Streams und Firehose.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/e2a9c412-312e-4900-9774-19a281c578e4/images/6e6df998-e6c2-4eaf-b263-ace752194689.png)


Das Diagramm zeigt den folgenden Workflow:

1. Daten werden mit Amazon API Gateway als Proxy für DynamoDB aufgenommen. Sie können auch jede andere Quelle verwenden, um Daten in DynamoDB aufzunehmen. 

1. Änderungen auf Artikelebene werden nahezu in Echtzeit in Kinesis Data Streams generiert und an Amazon S3 übermittelt.

1. Kinesis Data Streams sendet die Datensätze zur Transformation und Bereitstellung an Firehose. 

1. Eine Lambda-Funktion konvertiert die Datensätze von einem DynamoDB-Datensatzformat in das JSON-Format, das nur die Namen und Werte der Datensatzelementattribute enthält.

## Tools
<a name="deliver-dynamodb-records-to-amazon-s3-using-kinesis-data-streams-and-amazon-data-firehose-with-aws-cdk-tools"></a>

*AWS-Services*
+ [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/latest/guide/home.html)ist ein Softwareentwicklungs-Framework, das Sie bei der Definition und Bereitstellung der AWS-Cloud-Infrastruktur im Code unterstützt.
+ [AWS CDK Toolkit](https://docs.aws.amazon.com/cdk/latest/guide/cli.html) ist ein Cloud-Entwicklungskit für die Befehlszeile, mit dem Sie mit Ihrer AWS CDK App interagieren können.
+ [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) ist ein Open-Source-Tool, mit dem Sie AWS-Services über Befehle in Ihrer Befehlszeilen-Shell interagieren können.
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)hilft Ihnen dabei, AWS Ressourcen einzurichten, sie schnell und konsistent bereitzustellen und sie während ihres gesamten Lebenszyklus über und zu verwalten. AWS-Konten AWS-Regionen

*Code-Repository*

Der Code für dieses Muster ist im GitHub [aws-dynamodb-kinesisfirehose-s3-Ingestion-Repository verfügbar.](https://github.com/aws-samples/aws-dynamodb-kinesisfirehose-s3-ingestion/)

## Epen
<a name="deliver-dynamodb-records-to-amazon-s3-using-kinesis-data-streams-and-amazon-data-firehose-with-aws-cdk-epics"></a>

### Richten Sie den Beispielcode ein und konfigurieren Sie ihn
<a name="set-up-and-configure-the-sample-code"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Installieren Sie die Abhängigkeiten. | Installieren Sie auf Ihrem lokalen Computer die Abhängigkeiten aus den `package.json` Dateien in den `sample-application` Verzeichnissen `pattern/aws-dynamodb-kinesisstreams-s3` und, indem Sie die folgenden Befehle ausführen:<pre>cd <project_root>/pattern/aws-dynamodb-kinesisstreams-s3 </pre><pre>npm install && npm run build</pre><pre>cd <project_root>/sample-application/</pre><pre>npm install && npm run build</pre>  | App-Entwickler, General AWS | 
| Generieren Sie die CloudFormation Vorlage. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/deliver-dynamodb-records-to-amazon-s3-using-kinesis-data-streams-and-amazon-data-firehose-with-aws-cdk.html) | App-Entwickler, General AWS, AWS DevOps | 

### Stellen Sie die Ressourcen bereit
<a name="deploy-the-resources"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Überprüfen und implementieren Sie die Ressourcen. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/deliver-dynamodb-records-to-amazon-s3-using-kinesis-data-streams-and-amazon-data-firehose-with-aws-cdk.html) | App-Entwickler, General AWS, AWS DevOps | 

### Daten in die DynamoDB-Tabelle aufnehmen, um die Lösung zu testen
<a name="ingest-data-into-the-dynamodb-table-to-test-the-solution"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Nehmen Sie Ihre Beispieldaten in die DynamoDB-Tabelle auf. | Senden Sie eine Anfrage an Ihre DynamoDB-Tabelle, indem Sie den folgenden Befehl in ausführen: AWS CLI`aws dynamodb put-item --table-name <your_table_name> --item '{"<table_partition_key>": {"S": "<partition_key_ID>"},"MessageData":{"S": "<data>"}}'`Beispiel:`aws dynamodb put-item --table-name SourceData_table --item '{"SourceDataId": {"S": "123"},"MessageData":{"S": "Hello World"}}'`Standardmäßig `put-item` gibt der keinen Wert als Ausgabe zurück, wenn der Vorgang erfolgreich ist. Wenn der Vorgang fehlschlägt, wird ein Fehler zurückgegeben. Die Daten werden in DynamoDB gespeichert und dann an Kinesis Data Streams und Firehose gesendet. Sie verwenden unterschiedliche Methoden, um Daten zu einer DynamoDB-Tabelle hinzuzufügen. Weitere Informationen finden Sie unter [Daten in Tabellen laden in](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/SampleData.LoadData.html) der DynamoDB-Dokumentation. | App-Developer | 
| Stellen Sie sicher, dass ein neues Objekt im S3-Bucket erstellt wurde. | Melden Sie sich beim S3-Bucket an AWS-Managementkonsole und überwachen Sie den S3-Bucket, um sicherzustellen, dass mit den von Ihnen gesendeten Daten ein neues Objekt erstellt wurde. Weitere Informationen finden Sie [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html)in der Amazon S3 S3-Dokumentation. | App-Entwickler, General AWS | 

### Bereinigen von Ressourcen
<a name="clean-up-resources"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Bereinigen Sie die Ressourcen.  | Führen Sie den `cdk destroy` Befehl aus, um alle von diesem Muster verwendeten Ressourcen zu löschen. | App-Entwickler, General AWS | 

## Zugehörige Ressourcen
<a name="deliver-dynamodb-records-to-amazon-s3-using-kinesis-data-streams-and-amazon-data-firehose-with-aws-cdk-resources"></a>
+ [static-site-stacks3-.ts](https://github.com/awslabs/aws-solutions-constructs/blob/main/source/use_cases/aws-s3-static-website/lib/s3-static-site-stack.ts#L25) (GitHub Repository)
+ [aws-apigateway-dynamodb Modul](https://github.com/awslabs/aws-solutions-constructs/tree/main/source/patterns/%40aws-solutions-constructs/aws-apigateway-dynamodb) (GitHub Repositorium)
+ [aws-kinesisstreams-kinesisfirehose-s3-Modul](https://github.com/awslabs/aws-solutions-constructs/tree/main/source/patterns/%40aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3) (GitHub Repositorium)
+ [Erfassung von Änderungsdaten für DynamoDB Streams](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Streams.html) (DynamoDB-Dokumentation)
+ [Verwenden von Kinesis Data Streams zur Erfassung von Änderungen an DynamoDB (DynamoDB-Dokumentation](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/kds.html))