当 3 个对象加载到 S3 时 AWS SNS 触发

AWS SNS trigger when 3 objects are loaded into S3

我有一个客户端,每周将 3 个 CSV 文件的数据上传到 S3 存储桶,彼此之间的间隔始终在(最多)5 分钟内。我有 python 代码可以摄取 3 个文件,聚合它们,并写入和输出我想用来创建 lambda 函数以完全自动化此作业的代码。问题是我无法配置每创建 3 个对象的 S3 触发器。我可以让 lambda 触发每次上传和退出,直到有 3 个文件,但我不想这样做,因为它真的不划算。

所以我遇到了这个问题 ,它建议有一个 SNS 主题,在一批上传完成后得到通知,但是我无法弄清楚如何配置它。基本上我想做的是创建类似于 CloudWatch 警报的东西,当 3 个对象 PUTS 在彼此相隔 5 分钟内发生时触发。这可能吗?或者,我如何按照链接问题中建议的方式配置我的 SNS 事件?

我认为您误读了所链接的 post 中的答案。 SNS 选项实际上是有人在将他们的一批文件推送到 S3 后发送 SNS 消息。因此发件人需要更新他们的流程以包含新的 SNS 消息步骤。

选项 3 question/answer 是关于使用 S3 触发器以自动方式处理此问题,发件人除了上传文件外不需要执行任何额外步骤,但它也更复杂,因为它涉及使用带有原子计数器的 DynamoDB table 来确保文件不会被多次处理。

我想指出,您对为每个 S3 对象触发 Lambda 函数的成本效益的担忧大约是每月几美分,也许更少。