Amazon Simple Queue Service als Quelle in 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 Simple Queue Service als Quelle in EventBridge Pipes

Sie können EventBridge Pipes verwenden, um Datensätze aus einer SQS Amazon-Warteschlange zu empfangen. Sie können diese Datensätze dann optional filtern oder optimieren, bevor Sie sie zur Verarbeitung an ein verfügbares Ziel senden.

Sie können eine Pipe verwenden, um Nachrichten in einer Amazon Simple Queue Service (AmazonSQS) -Warteschlange zu verarbeiten. EventBridge Pipes unterstützen Standardwarteschlangen und First-in-First-Out-Warteschlangen () FIFO. Mit Amazon SQS können Sie Aufgaben von einer Komponente Ihrer Anwendung auslagern, indem Sie sie an eine Warteschlange senden und sie asynchron verarbeiten.

EventBridge fragt die Warteschlange ab und ruft Ihre Pipe synchron mit einem Ereignis auf, das Warteschlangennachrichten enthält. EventBridge liest Nachrichten stapelweise und ruft Ihre Pipe einmal für jeden Batch auf. Wenn Ihre Pipe einen Stapel erfolgreich verarbeitet, EventBridge löscht sie die zugehörigen Nachrichten aus der Warteschlange.

Ruft standardmäßig bis zu 10 Nachrichten in Ihrer Warteschlange gleichzeitig ab und sendet diesen Stapel an Ihre Pipe. EventBridge Um zu vermeiden, dass die Pipe mit einer kleinen Anzahl von Datensätzen aufgerufen wird, können Sie der Ereignisquelle mitteilen, Datensätze bis zu fünf Minuten zu puffern, indem Sie ein Stapelfenster konfigurieren. Vor dem Aufrufen der Pipe werden EventBridge weiterhin Nachrichten aus der SQS Amazon-Standardwarteschlange abgefragt, bis eines der folgenden Dinge eintritt:

  • Das Stapelfenster läuft ab.

  • Das Größenkontingent für die Nutzlast des Aufrufs ist erreicht.

  • Die konfigurierte maximale Stapelgröße ist erreicht.

Anmerkung

Wenn Sie ein Batch-Fenster verwenden und Ihre SQS Amazon-Warteschlange wenig Verkehr enthält, warten Sie EventBridge möglicherweise bis zu 20 Sekunden, bevor Sie Ihre Pipe aufrufen. Dies gilt auch, wenn Sie ein Stapelfenster auf weniger als 20 Sekunden festlegen. Bei FIFO Warteschlangen enthalten Datensätze zusätzliche Attribute, die sich auf Deduplizierung und Sequenzierung beziehen.

Beim EventBridge Lesen eines Batches bleiben die Nachrichten in der Warteschlange, werden aber für die Dauer des Sichtbarkeits-Timeouts der Warteschlange ausgeblendet. Wenn Ihre Pipe den Stapel erfolgreich verarbeitet, EventBridge werden die Nachrichten aus der Warteschlange gelöscht. Wenn die Pipe während der Verarbeitung eines Stapels auf einen Fehler stößt, werden standardmäßig alle Nachrichten in diesem Stapel wieder in der Warteschlange sichtbar. Deshalb muss der Pipe-Code in der Lage sein, dieselbe Nachricht mehrmals ohne unbeabsichtigte Begleiterscheinungen zu verarbeiten. Sie können dieses Verhalten bei der erneuten Verarbeitung ändern, indem Sie Stapelelementfehler in die Pipe-Antwort einbeziehen. Das folgende Beispiel zeigt ein Ereignis für einen Batch von zwei Meldungen.

Beispielereignisse

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.

Standardwarteschlangen

[ { "messageId": "059f36b4-87a3-44ab-83d2-661975830a7d", "receiptHandle": "AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...", "body": "Test message.", "attributes": { "ApproximateReceiveCount": "1", "SentTimestamp": "1545082649183", "SenderId": "AIDAIENQZJOLO23YVJ4VO", "ApproximateFirstReceiveTimestamp": "1545082649185" }, "messageAttributes": {}, "md5OfBody": "e4e68fb7bd0e697a0ae8f1bb342846b3", "eventSource": "aws:sqs", "eventSourceARN": "arn:aws:sqs:us-east-2:123456789012:my-queue", "awsRegion": "us-east-2" }, { "messageId": "2e1424d4-f796-459a-8184-9c92662be6da", "receiptHandle": "AQEBzWwaftRI0KuVm4tP+/7q1rGgNqicHq...", "body": "Test message.", "attributes": { "ApproximateReceiveCount": "1", "SentTimestamp": "1545082650636", "SenderId": "AIDAIENQZJOLO23YVJ4VO", "ApproximateFirstReceiveTimestamp": "1545082650649" }, "messageAttributes": {}, "md5OfBody": "e4e68fb7bd0e697a0ae8f1bb342846b3", "eventSource": "aws:sqs", "eventSourceARN": "arn:aws:sqs:us-east-2:123456789012:my-queue", "awsRegion": "us-east-2" } ]

FIFOWarteschlange

[ { "messageId": "11d6ee51-4cc7-4302-9e22-7cd8afdaadf5", "receiptHandle": "AQEBBX8nesZEXmkhsmZeyIE8iQAMig7qw...", "body": "Test message.", "attributes": { "ApproximateReceiveCount": "1", "SentTimestamp": "1573251510774", "SequenceNumber": "18849496460467696128", "MessageGroupId": "1", "SenderId": "AIDAIO23YVJENQZJOL4VO", "MessageDeduplicationId": "1", "ApproximateFirstReceiveTimestamp": "1573251510774" }, "messageAttributes": {}, "md5OfBody": "e4e68fb7bd0e697a0ae8f1bb342846b3", "eventSource": "aws:sqs", "eventSourceARN": "arn:aws:sqs:us-east-2:123456789012:fifo.fifo", "awsRegion": "us-east-2" } ]

Skalierung und Verarbeitung

EventBridge Verwendet bei Standardwarteschlangen Abfragen eine Warteschlange, um eine Warteschlange abzufragen, bis sie aktiv wird. Wenn Nachrichten verfügbar sind, EventBridge liest es bis zu fünf Stapel und sendet sie an Ihre Pipe. Wenn Nachrichten weiterhin verfügbar sind, EventBridge erhöht sich die Anzahl der Prozesse, die Batches lesen, um bis zu 300 weitere Instanzen pro Minute. Die maximale Anzahl von Stapeln, die eine Pipe gleichzeitig verarbeiten kann, ist 1 000.

EventBridge Sendet bei FIFO Warteschlangen Nachrichten an Ihre Pipe in der Reihenfolge, in der sie empfangen werden. Wenn Sie eine Nachricht an eine FIFO Warteschlange senden, geben Sie eine Nachrichtengruppen-ID an. Amazon SQS erleichtert die Zustellung von Nachrichten in derselben Gruppe an EventBridge, der Reihe nach. EventBridge sortiert die empfangenen Nachrichten in Gruppen und sendet jeweils nur einen Stapel für eine Gruppe. Wenn Ihre Pipe einen Fehler zurückgibt, versucht die Pipe alle Wiederholungen mit den betroffenen Nachrichten, bevor sie weitere Nachrichten aus derselben Gruppe EventBridge empfängt.

Konfiguration einer Warteschlange für die Verwendung mit EventBridge Pipes

Erstellen Sie eine SQS Amazon-Warteschlange, die als Quelle für Ihre Pipe dient. Konfigurieren Sie dann die Warteschlange so, dass Ihre Pipe genügend Zeit hat, um jeden Batch von Ereignissen EventBridge zu verarbeiten — und dass sie es als Reaktion auf Drosselungsfehler beim Skalieren erneut versucht.

Um der Pipe Zeit zum Verarbeiten der einzelnen Stapel von Datensätzen einzuräumen, legen Sie die Zeitbeschränkung für die Sichtbarkeit der Quellwarteschlange auf mindestens den sechsfachen Wert der kombinierten Laufzeit der Pipe-Anreicherung und der Zielkomponenten fest. Die zusätzliche Zeit ermöglicht es, es erneut EventBridge zu versuchen, falls Ihre Pipe während der Verarbeitung eines vorherigen Batches gedrosselt wurde.

Wenn Ihre Pipe eine Nachricht mehrmals nicht verarbeiten kann, SQS kann Amazon sie an eine Warteschlange für unzustellbare Briefe weiterleiten. Wenn Ihre Pipe einen Fehler zurückgibt, EventBridge behalten Sie sie in der Warteschlange. EventBridgeEmpfängt die Nachricht erneut, nachdem das Sichtbarkeits-Timeout abgelaufen ist. Um Nachrichten nach einer Anzahl von Empfangsvorgängen an eine zweite Warteschlange zu senden, konfigurieren Sie eine Warteschlange für den Posteingang in der Quellwarteschlange.

Anmerkung

Achten Sie darauf, die Warteschlange für unzustellbare Nachrichten für die Quellwarteschlange und nicht für die Pipe zu konfigurieren. Die Warteschlange für unzustellbare Nachrichten, die Sie für eine Pipe konfigurieren, wird für die Warteschlange asynchroner Aufrufe der Pipe und nicht für Quellwarteschlangen verwendet.

Wenn die Pipe einen Fehler zurückgibt oder nicht aufgerufen werden kann, da ihre maximale Gleichzeitigkeit erreicht wurde, kann die Verarbeitung mit zusätzlichen Versuchen erfolgreich sein. Damit Nachrichten mehr Chancen zur Verarbeitung haben, bevor sie an die Warteschlange für unzustellbare Nachrichten gesendet werden, stellen Sie maxReceiveCount für die Redrive-Richtlinie der Quellwarteschlange auf mindestens 5 ein.

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.