Ich sehe doppelte Nachrichten in Amazon Simple Queue Service (Amazon SQS) für dasselbe Amazon Simple Storage Service (Amazon S3)-Ereignis.
Behebung
Amazon S3 verwendet integrierte Backoff- und Wiederholungsmechanismen, um Benachrichtigungen zuzustellen. In seltenen Fällen kann der Wiederholungsmechanismus zu doppelten Benachrichtigungen für dasselbe Objektereignis führen.
Amazon S3 übermittelt Ereignisbenachrichtigungen werden als JSON-Objekte, die einen Sequenzerschlüssel enthalten. Der Sequenzerschlüssel ist ein Hexadezimalwert, mit dem Sie die Reihenfolge der Ereignisse für einen Objektschlüssel bestimmen können. Verwenden Sie die Sequenzertaste, um die Ereignissequenz von PUTs und DELETES für dasselbe Objekt zu identifizieren. Doppelte Ereignisbenachrichtigungen für ein bestimmtes Objektereignis haben den gleichen Wert für den Sequenzerschlüssel.
Um die Reihenfolge zu ermitteln, in der Ereignisse eingetreten sind, vergleichen Sie die Sequenzer-Strings von zwei Ereignisbenachrichtigungen auf demselben Objektschlüssel. Die Ereignisbenachrichtigung mit dem größeren Hexadezimalwert des Sequenzers ist das Ereignis, das später eingetreten ist.
Hinweis:
- Sie können die Sequenzertaste nicht verwenden, um die Reihenfolge der Ereignisse zwischen verschiedenen Objektschlüsseln zu bestimmen.
- Die Sequenzer können unterschiedlich lang sein. Um diese Werte zu vergleichen, füllen Sie den kürzeren Wert mit der rechten Maustaste mit Nullen auf und führen Sie dann einen lexikografischen Vergleich durch.
Für Anwendungen, die doppelte Benachrichtigungen identifizieren, verwalten Sie eine sekundäre Datenbank oder einen Index von S3-Objekten, die Ereignisbenachrichtigungen verwenden. Speichern und vergleichen Sie dann die Sequenzer-Schlüsselwerte, um bei der Verarbeitung jeder Ereignisbenachrichtigung nach Duplikaten zu suchen.