我在 Amazon Simple Queue Service(Amazon SQS)中看到了同一 Amazon Simple Storage Service(Amazon S3)事件的重复消息。
解决方法
Amazon S3 使用内置回退和重试机制来传送通知。极少数情况下,重试机制可能会导致同一对象事件的重复通知。
Amazon S3 以包含序列器键的 JSON 对象形式发送事件通知。序列器键是一个十六进制值,允许您确定对象键的事件顺序。使用序列器键来识别同一对象的 PUT 和 DELETE 的事件序列。特定对象事件的重复事件通知具有与序列器键相同的值。
若要确定事件发生的顺序,请比较同一对象键上两个事件通知中的序列器字符串。序列号十六进制值较大的事件通知是稍后发生的事件。
注意:
- 不能使用序列器键来确定不同对象键之间的事件顺序。
- 序列器的长度可能不同。要比较这些值,请在较短的值上加上零,然后进行字典比较。
对于识别重复通知的应用程序,维护使用事件通知的 S3 对象的辅助数据库或者索引。然后,存储并比较序列器键值,以在每个事件通知处理时检查是否重复。