我有由SQS触发的Lambda函数。它对接收到的JSON对象进行一些验证,并将其写入S3存储桶。一切似乎都正常,除了在启用了版本控制功能的存储桶中查看对象的所有版本时,似乎时不时地节省了两倍。它是具有相同内容,相同保存时间但具有不同版本ID的同一对象。有什么想法吗?
答案 0 :(得分:1)
AWS SQS标准队列保证每个项目至少要交付一次,但不保证重复交付。
因此,在某些情况下,使用标准队列时,SQS可能多次传递相同的有效负载。这就是为什么您在S3存储桶中看到重复版本的原因。
AWS SQS Queue Types page对此有很好的描述,它的行为方式也如此。
在该页面上的Standard Queues
:
至少一次传递:一条消息至少传递一次,但是偶尔会传递一条消息的多个副本。