Amazon Kinesis Kinesis-Stream als Quelle für EventBridge Pipes - 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 Kinesis Kinesis-Stream als Quelle für EventBridge Pipes

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

Ein Kinesis-Daten-Stream ist eine Gruppe von Shards. Jeder Shard enthält eine Sequenz von Datensätzen. Ein Konsument ist eine Anwendung, die die Daten aus einem Kinesis-Daten-Stream verarbeitet. Sie können eine EventBridge Pipe einem Verbraucher mit gemeinsamem Durchsatz (Standard-Iterator) oder einem Verbraucher mit dediziertem Durchsatz und erweitertem Fan-Out zuordnen.

EventBridge Verwendet bei Standard-Iteratoren das HTTP Protokoll, um jeden Shard in Ihrem Kinesis-Stream nach Datensätzen abzufragen. Die Pipe teilt den Lesedurchsatz mit anderen Konsumenten des Shards.

Um die Latenz zu minimieren und den Lesedurchsatz zu maximieren, können Sie einen Daten-Stream-Konsumenten mit erweitertem Rundsenden erstellen. Stream-Konsumenten erhalten Sie eine dedizierte Verbindung für jeden Shard, der keine Auswirkungen auf andere Anwendungen hat, die aus dem Stream lesen. Der dedizierte Durchsatz ist hilfreich, wenn viele Anwendungen die gleichen Daten lesen oder wenn ein Stream mit großen Datensätzen verarbeitet wird. Kinesis verschiebt Datensätze auf über /2. EventBridge HTTP Weitere Informationen zu Kinesis-Datenströmen finden Sie unter Lesen von Daten aus Amazon Kinesis Data Streams.

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.

[ { "kinesisSchemaVersion": "1.0", "partitionKey": "1", "sequenceNumber": "49590338271490256608559692538361571095921575989136588898", "data": "SGVsbG8sIHRoaXMgaXMgYSB0ZXN0Lg==", "approximateArrivalTimestamp": 1545084650.987 "eventSource": "aws:kinesis", "eventVersion": "1.0", "eventID": "shardId-000000000006:49590338271490256608559692538361571095921575989136588898", "eventName": "aws:kinesis:record", "invokeIdentityArn": "arn:aws:iam::123456789012:role/lambda-role", "awsRegion": "us-east-2", "eventSourceARN": "arn:aws:kinesis:us-east-2:123456789012:stream/lambda-stream" }, { "kinesisSchemaVersion": "1.0", "partitionKey": "1", "sequenceNumber": "49590338271490256608559692540925702759324208523137515618", "data": "VGhpcyBpcyBvbmx5IGEgdGVzdC4=", "approximateArrivalTimestamp": 1545084711.166 "eventSource": "aws:kinesis", "eventVersion": "1.0", "eventID": "shardId-000000000006:49590338271490256608559692540925702759324208523137515618", "eventName": "aws:kinesis:record", "invokeIdentityArn": "arn:aws:iam::123456789012:role/lambda-role", "awsRegion": "us-east-2", "eventSourceARN": "arn:aws:kinesis:us-east-2:123456789012:stream/lambda-stream" } ]

Abfragen und Stapeln von Streams

EventBridge fragt Shards in Ihrem Kinesis-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 Startposition des Streams als TRIM_HORIZON oder AT_TIMESTAMP 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.