Amazon DynamoDB DynamoDB-Stream als Quelle für Pipes EventBridge - Amazon EventBridge

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.

Amazon DynamoDB DynamoDB-Stream als Quelle für Pipes EventBridge

Sie können EventBridge Pipes verwenden, um Datensätze in einem DynamoDB-Stream zu empfangen. Sie können diese Datensätze dann optional filtern oder optimieren, bevor Sie sie zur Verarbeitung an ein Ziel senden. Es gibt spezifische Einstellungen für Amazon DynamoDB Streams, die Sie beim Einrichten der Pipe auswählen können. EventBridge Pipes behält die Reihenfolge der Datensätze aus dem Datenstream bei, wenn diese Daten an das Ziel gesendet werden.

Wichtig

Das Deaktivieren eines DynamoDB-Streams, der die Quelle einer Pipe ist, führt dazu, dass diese Pipe unbrauchbar wird, selbst wenn Sie den Stream dann erneut aktivieren. Dies passiert aus folgenden Gründen:

  • Sie können eine Pipe, deren Quelle deaktiviert ist, nicht stoppen, starten oder aktualisieren.

  • Sie können eine Pipe nach der Erstellung nicht mit einer neuen Quelle aktualisieren. Wenn Sie einen DynamoDB-Stream erneut aktivieren, wird diesem Stream ein neuer Amazon-Ressourcenname (ARN) zugewiesen und er ist nicht mehr mit Ihrer Pipe verknüpft.

Wenn Sie den DynamoDB-Stream erneut aktivieren, müssen Sie anschließend eine neue Pipe mit dem neuen Stream erstellen. ARN

Beispielereignis

Das folgende Beispielereignis zeigt die Informationen, die von der Pipe empfangen werden. Sie können dieses Ereignis verwenden, um Ihre Ereignismuster zu erstellen und zu filtern oder um die Eingabetransformation zu definieren. Nicht alle Felder können gefiltert werden. Weitere Informationen darüber, welche Felder Sie filtern können, finden Sie unter Filterung von Ereignissen in Amazon EventBridge Pipes.

[ { "eventID": "1", "eventVersion": "1.0", "dynamodb": { "Keys": { "Id": { "N": "101" } }, "NewImage": { "Message": { "S": "New item!" }, "Id": { "N": "101" } }, "StreamViewType": "NEW_AND_OLD_IMAGES", "SequenceNumber": "111", "SizeBytes": 26 }, "awsRegion": "us-west-2", "eventName": "INSERT", "eventSourceARN": "arn:aws:dynamodb:us-east-1:111122223333:table/EventSourceTable", "eventSource": "aws:dynamodb" }, { "eventID": "2", "eventVersion": "1.0", "dynamodb": { "OldImage": { "Message": { "S": "New item!" }, "Id": { "N": "101" } }, "SequenceNumber": "222", "Keys": { "Id": { "N": "101" } }, "SizeBytes": 59, "NewImage": { "Message": { "S": "This item has changed" }, "Id": { "N": "101" } }, "StreamViewType": "NEW_AND_OLD_IMAGES" }, "awsRegion": "us-west-2", "eventName": "MODIFY", "eventSourceARN": "arn:aws:dynamodb:us-east-1:111122223333:table/EventSourceTable", "eventSource": "aws:dynamodb" } ]

Abfragen und Stapeln von Streams

EventBridge fragt Shards in Ihrem DynamoDB-Stream mit einer Basisrate von viermal pro Sekunde nach Datensätzen ab. Wenn Datensätze verfügbar sind, EventBridge verarbeitet das Ereignis und wartet auf das Ergebnis. Wenn die Verarbeitung erfolgreich ist, EventBridge wird die Abfrage fortgesetzt, bis weitere Datensätze eingegangen sind.

Ruft standardmäßig Ihre EventBridge Pipe auf, sobald Datensätze verfügbar sind. Wenn der Batch, der aus der Quelle EventBridge liest, nur einen Datensatz enthält, wird nur ein Ereignis verarbeitet. Um zu vermeiden, dass eine kleine Anzahl von Datensätzen verarbeitet wird, können Sie der Pipe mitteilen, Datensätze bis zu fünf Minuten zu puffern, indem Sie ein Stapelverarbeitungsfenster konfigurieren. Vor der Verarbeitung der Ereignisse werden EventBridge weiterhin Datensätze aus der Quelle gelesen, bis ein vollständiger Stapel erfasst ist, das Batch-Fenster abläuft oder der Stapel die Nutzlastgrenze von 6 MB erreicht.

Sie können die Parallelität auch erhöhen, indem Sie mehrere Batches aus jedem Shard parallel verarbeiten. EventBridge kann bis zu 10 Stapel in jedem Shard gleichzeitig verarbeiten. Auch wenn Sie die Anzahl der gleichzeitigen Batches pro Shard erhöhen, EventBridge bleibt die Verarbeitung in der richtigen Reihenfolge auf Partitionsschlüsselebene gewährleistet.

Konfigurieren Sie die ParallelizationFactor-Einstellung, um einen Shard eines Kinesis- oder DynamoDB-Datenstroms mit mehr als einer Pipe-Ausführung gleichzeitig zu verarbeiten. Sie können die Anzahl der gleichzeitigen Batches, die von einem Shard abgerufen werden, EventBridge mithilfe eines Parallelisierungsfaktors von 1 (Standard) bis 10 angeben. Wenn Sie beispielsweise ParallelizationFactor auf 2 setzen, können Sie maximal 200 gleichzeitige EventBridge Pipe-Ausführungen haben, um 100 Kinesis-Datensplitter zu verarbeiten. Dies hilft, den Verarbeitungsdurchsatz hochzuskalieren, wenn das Datenvolumen flüchtig ist und IteratorAge hoch ist. Beachten Sie, dass der Parallelisierungsfaktor nicht funktioniert, wenn Sie die Kinesis-Aggregation verwenden.

Abfrage und Startposition des Streams

Beachten Sie, dass die Stream-Quellenabfrage bei der Pipe-Erstellung und -Aktualisierung letztendlich konsistent ist.

  • Bei der Pipe-Erstellung kann es mehrere Minuten dauern, bis mit der Abfrage von Ereignissen aus dem Stream begonnen wird.

  • Bei Pipe-Aktualisierungen der Quellenabfragekonfiguration kann es mehrere Minuten dauern, bis die Abfrage von Ereignissen aus dem Stream gestoppt und neu gestartet wird.

Dies bedeutet, dass, wenn Sie LATEST als Startposition für den Stream angeben, die Pipe möglicherweise Ereignisse übersehen könnte, die bei der Pipe-Erstellung oder -Aktualisierung gesendet werden. Um sicherzustellen, dass keine Ereignisse übersehen werden, geben Sie die Stream-Startposition als TRIM_HORIZON an.

Melden von Batch-Elementen

Wenn Streaming-Daten aus einer Quelle EventBridge konsumiert und verarbeitet werden, wird standardmäßig auf die höchste Sequenznummer eines Batches verwiesen, aber nur, wenn der Batch vollständig erfolgreich ist. Um zu vermeiden, dass erfolgreich verarbeitete Nachrichten in einem fehlgeschlagenen Stapel erneut verarbeitet werden, können Sie die Anreicherung oder das Ziel so konfigurieren, dass ein Objekt zurückgegeben wird, das angibt, welche Nachrichten erfolgreich waren und welche fehlgeschlagen sind. Dies wird als partielle Batch-Antwort bezeichnet.

Weitere Informationen finden Sie unter Teilweiser Stapelfehler.

Erfolgs- und Misserfolgsbedingungen

Wenn Sie eine der folgenden Angaben zurückgeben, wird ein Batch als vollständig erfolgreich EventBridge behandelt:

  • Eine leere batchItemFailure-Liste

  • Eine ungültige batchItemFailure-Liste

  • Ein leeres EventResponse

  • Ein ungültiges EventResponse

Wenn Sie eine der folgenden Angaben zurückgeben, wird ein Batch als vollständiger Fehlschlag EventBridge behandelt:

  • Eine leere Zeichenfolge itemIdentifier

  • Ein ungültiges itemIdentifier

  • Ein itemIdentifier mit einem falschen Schlüsselnamen

EventBridge wiederholt Fehler auf der Grundlage Ihrer Wiederholungsstrategie.