S3通知创建多个事件

时间:2019-06-26 11:59:23

标签: amazon-web-services amazon-s3 aws-lambda

当文件降落在S3上时,我们一直在使用AWS S3通知来触发lambda函数,并且该模型运行良好,直到我们注意到某些文件被多次处理,从而在数据存储中生成重复项。 我们注意到大约发生了0.05%的文件。

我知道可以通过执行upsert来防止这种情况发生,但是我们担心的是运行不必要的lambda函数的潜在成本,因为这会影响我们的成本。

我搜索过Google和SO,但只发现了类似问题。我们没有超时问题,因为文件已被完全处理。我们的文件很小,最大文件不到40万。即使事件在同一文件上运行,我们也不会两次收到同一事件,因为这些事件具有不同的请求ID。

1 个答案:

答案 0 :(得分:2)

在花了很多时间研究S3,SNS和Lambda文档之后,我发现了有关S3通知的注释,内容为:

  

如果您的应用程序需要特定的语义(例如,   确保没有错过任何事件,或确保操作仅运行一次),   我们建议您在发生以下情况时考虑错过和重复的事件   设计您的应用程序。

https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html

有效地,这意味着S3通知对我们来说是错误的解决方案,但是考虑到我在此问题上投入的研究时间,我认为我将在这里为其他可能忽略上面链接页面的人提供帮助。< / p>