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.
Integration von DynamoDB mit Amazon Managed Streaming for Apache Kafka
Amazon Managed Streaming for Apache Kafka (Amazon MSK) macht es einfach, Streaming-Daten mit einem vollständig verwalteten, hochverfügbaren Apache Kafka-Service in Echtzeit aufzunehmen und zu verarbeiten.
Apache Kafka
Aufgrund dieser Funktionen wird Apache Kafka häufig zum Aufbau von Echtzeit-Streaming-Daten-Pipelines verwendet. Eine Datenpipeline verarbeitet und verschiebt Daten zuverlässig von einem System in ein anderes. Sie kann ein wichtiger Bestandteil einer speziell entwickelten Datenbankstrategie sein, indem sie die Verwendung mehrerer Datenbanken erleichtert, die jeweils unterschiedliche Anwendungsfälle unterstützen.
Amazon DynamoDB ist ein häufiges Ziel in diesen Daten-Pipelines, um Anwendungen zu unterstützen, die Schlüsselwert- oder Dokumentdatenmodelle verwenden und grenzenlose Skalierbarkeit mit konsistenter Leistung im einstelligen Millisekundenbereich wünschen.
Themen
Funktionsweise
Eine Integration zwischen Amazon MSK und DynamoDB verwendet eine Lambda-Funktion, um Datensätze von Amazon MSK zu verarbeiten und in DynamoDB zu schreiben.

Lambda fragt intern nach neuen Nachrichten von Amazon MSK ab und ruft dann synchron die Lambda-Zielfunktion auf. Die Event-Payload der Lambda-Funktion enthält Stapel von Nachrichten von Amazon MSK. Für die Integration zwischen Amazon MSK und DynamoDB schreibt die Lambda-Funktion diese Nachrichten in DynamoDB.
Richten Sie eine Integration zwischen Amazon MSK und DynamoDB ein
Anmerkung
Sie können die in diesem Beispiel verwendeten Ressourcen im folgenden GitHub Repository
Die folgenden Schritte zeigen, wie Sie eine Beispielintegration zwischen Amazon MSK und Amazon DynamoDB einrichten. Das Beispiel stellt Daten dar, die von Geräten des Internet der Dinge (IoT) generiert und in Amazon MSK aufgenommen wurden. Wenn Daten in Amazon MSK aufgenommen werden, können sie in Analysedienste oder Tools von Drittanbietern integriert werden, die mit Apache Kafka kompatibel sind, was verschiedene Analyseanwendungsfälle ermöglicht. Die Integration von DynamoDB ermöglicht auch die Suche nach Schlüsselwerten einzelner Gerätedatensätze.
Dieses Beispiel zeigt, wie ein Python-Skript IoT-Sensordaten in Amazon MSK schreibt. Anschließend schreibt eine Lambda-Funktion Elemente mit dem Partitionsschlüssel "deviceid
" in DynamoDB.
Die bereitgestellte CloudFormation Vorlage erstellt die folgenden Ressourcen: einen Amazon S3 S3-Bucket, eine Amazon VPC, einen Amazon MSK-Cluster und einen AWS CloudShell zum Testen von Datenoperationen.
Um Testdaten zu generieren, erstellen Sie ein Amazon MSK-Thema und anschließend eine DynamoDB-Tabelle. Sie können den Sitzungsmanager von der Managementkonsole aus verwenden, um sich beim Betriebssystem CloudShell des anzumelden und Python-Skripts auszuführen.
Nachdem Sie die CloudFormation Vorlage ausgeführt haben, können Sie die Erstellung dieser Architektur abschließen, indem Sie die folgenden Operationen ausführen.
-
Führen Sie die CloudFormation Vorlage aus
S3bucket.yaml
, um einen S3-Bucket zu erstellen. Für alle nachfolgenden Skripts oder Operationen führen Sie sie bitte in derselben Region aus. Geben SieForMSKTestS3
den Namen des CloudFormation Stacks ein.Wenn dies abgeschlossen ist, notieren Sie sich die Ausgabe des S3-Bucket-Namens unter Ausgaben. Sie benötigen den Namen in Schritt 3.
-
Laden Sie die heruntergeladene ZIP-Datei in
fromMSK.zip
den S3-Bucket hoch, den Sie gerade erstellt haben. -
Führen Sie die CloudFormation Vorlage aus
VPC.yaml
, um eine VPC, einen Amazon MSK-Cluster und eine Lambda-Funktion zu erstellen. Geben Sie auf dem Parametereingabebildschirm den S3-Bucket-Namen ein, den Sie in Schritt 1 erstellt haben. Dort werden Sie nach dem S3-Bucket gefragt. Setzen Sie den CloudFormation Stack-Namen aufForMSKTestVPC
. -
Bereiten Sie die Umgebung für die Ausführung von Python-Skripten vor CloudShell. Sie können CloudShell auf dem verwenden AWS Management Console. Weitere Informationen zur Verwendung CloudShell finden Sie unter Erste Schritte mit AWS CloudShell. Erstellen Sie nach dem Start eine CloudShell, CloudShell die zu der VPC gehört, die Sie gerade erstellt haben, um eine Verbindung zum Amazon MSK-Cluster herzustellen. Erstellen Sie das CloudShell in einem privaten Subnetz. Füllen Sie die folgenden Felder aus:
-
Name — kann auf einen beliebigen Namen gesetzt werden. Ein Beispiel ist MSK-VPC
-
VPC — auswählen MSKTest
-
Subnetz — wählen Sie MSKTest Privates Subnetz () AZ1
-
SecurityGroup- Wählen Sie „Für Gruppe“ MSKSecurity
Sobald die CloudShell Zugehörigkeit zum privaten Subnetz gestartet wurde, führen Sie den folgenden Befehl aus:
pip install boto3 kafka-python aws-msk-iam-sasl-signer-python
-
-
Laden Sie Python-Skripte aus dem S3-Bucket herunter.
aws s3 cp s3://[YOUR-BUCKET-NAME]/pythonScripts.zip ./ unzip pythonScripts.zip
-
Überprüfen Sie die Managementkonsole und legen Sie die Umgebungsvariablen für die Broker-URL und den Regionswert in den Python-Skripten fest. Überprüfen Sie den Amazon MSK-Cluster-Broker-Endpunkt in der Management-Konsole.
-
Legen Sie die Umgebungsvariablen auf dem CloudShell fest. Wenn Sie die USA West (Oregon) verwenden:
export AWS_REGION="us-west-2" export MSK_BROKER="boot-YOURMSKCLUSTER.c3.kafka-serverless.ap-southeast-1.amazonaws.com:9098"
-
Führen Sie die folgenden Python-Skripte aus.
Erstellen Sie ein Amazon MSK-Thema:
python ./createTopic.py
Erstellen Sie eine DynamoDB-Tabelle:
python ./createTable.py
Schreiben Sie Testdaten in das Amazon MSK-Thema:
python ./kafkaDataGen.py
-
Überprüfen Sie die CloudWatch Metriken für die erstellten Amazon MSK-, Lambda- und DynamoDB-Ressourcen und überprüfen Sie die in der
device_status
Tabelle gespeicherten Daten mithilfe des DynamoDB-Daten-Explorers, um sicherzustellen, dass alle Prozesse korrekt ausgeführt wurden. Wenn jeder Prozess ohne Fehler ausgeführt wird, können Sie überprüfen, ob die Testdaten, die von Amazon MSK geschrieben wurden CloudShell , auch in DynamoDB geschrieben werden. -
Wenn Sie mit diesem Beispiel fertig sind, löschen Sie die in diesem Tutorial erstellten Ressourcen. Löschen Sie die beiden CloudFormation Stapel:
ForMSKTestS3
undForMSKTestVPC
. Wenn das Löschen des Stacks erfolgreich abgeschlossen wurde, werden alle Ressourcen gelöscht.
Nächste Schritte
Anmerkung
Wenn Sie Ressourcen erstellt haben, während Sie diesem Beispiel gefolgt sind, denken Sie bitte daran, diese zu löschen, um unerwartete Gebühren zu vermeiden.
Die Integration identifizierte eine Architektur, die Amazon MSK und DynamoDB miteinander verbindet, sodass Stream-Daten OLTP-Workloads unterstützen können. Von hier aus können komplexere Suchen realisiert werden, indem DynamoDB mit OpenSearch Service verknüpft wird. Erwägen Sie die Integration mit EventBridge für komplexere ereignisgesteuerte Anforderungen und Erweiterungen wie Amazon Managed Service für Apache Flink für höheren Durchsatz und geringere Latenzanforderungen.