首页 > 解决方案 > 限制 S3 上传/SNS 通知的数量

问题描述

我们有一个外部服务,可以将文件上传到我们的S3 bucketin account A。我们SNS notifications在每次上传时提出。一个lambda函数account B订阅这些通知。

这对我们很有效,除了如果外部服务错过了配置,它会一起上传 >500 个文件(在一个目录中)。当这种情况发生时,我们的 lambda 会被触发 500 次。

1. Is there a way to limit the number of files uploaded to a bucket within X minutes?
2. Is there a way to stop the lambda from getting invoked if it sees >500 SNS notifications together?

我知道在 Lambda 和 SNS 之间放置一个 SQS 可能会解决我们的问题。我想知道是否有另一种更简单、更方便的方法来解决这个问题。

我探索了限制 lambda 并发的可能性,这样在限制时会失败,但是 SNS 通知将被重试三次(这也是一件好事,我们不希望在出现其他错误的情况下失去这个功能),所以我们这样做不想那样做。

请注意,即时处理对我们来说不是硬性要求。我们可以等待大约 5 分钟来处理 SNS 通知。

标签: amazon-web-servicesamazon-s3amazon-sns

解决方案


不可以,无法在给定时间段内限制上传到 Amazon S3。

如果看到超过给定数量的 Amazon SNS 通知,也无法停止调用 Lambda。


推荐阅读