我在 Amazon Simple Queue Service (Amazon SQS) 中看到同一個 Amazon Simple Storage Service (Amazon S3) 事件的重複訊息。
解決方法
Amazon S3 使用內建退避和重試機制傳送通知。在極少數情況下,重試機制可能會導致同一個物件事件出現重複的通知。
Amazon S3 會以包含序列器索引鍵的 JSON 物件形式傳送事件通知。序列器索引鍵是一個十六進位值,可讓您確定物件索引鍵的事件順序。使用序列器索引鍵識別相同物件的 PUT 和 DELETE 的事件序列。特定物件事件的重複事件通知對於序列器索引鍵具有相同的值。
若要判斷事件的發生順序,請比較同一個物件索引鍵上兩個事件通知的序列器字串。序列器十六進位值較大的事件通知則是較晚發生的事件。
注意:
- 您無法使用序列器索引鍵判斷不同物件索引鍵之間的事件順序。
- 序列器可以有不同的長度。若要比較這些值,請以零填補較短值的右側,然後進行字典式的比較。
對於識別重複通知的應用程式,請使用事件通知維持次要資料庫或 S3 物件的索引。然後,儲存和比較序列器索引鍵值,以在處理每個事件通知時檢查是否有重複通知。