为什么我们不能直接从 s3 进行轮询

Why we can't poll from s3 directly

如今为了高效的系统设计,我们在 AWS S3 上推送消息,我们订阅一个主题(AWS SNS),然后订阅 AWS SQS 进行轮询(推荐方法)

现在的问题是:

您可以将 s3 事件通知直接推送到 SQS - 我一直这样做 - 它工作得很好。

s3->sns->sqs 优于 s3->sqs 的一个好处是能够在需要时 'fan out' 发送消息,而无需更改原始应用程序。 S3 将事件推送到 sns,sns 将其推送到 s3 队列 - 如果在某个时候您希望另一个队列接收相同的消息以进行额外处理,您可以在控制台或 cli 中进行配置 - 而您的原始应用程序永远不需要获取感动。

所以简而言之,s3->sns->sqs 为您提供了一些灵活性,而 s3->sqs 却没有,因为 if/when 事情发生了变化,尽管这两种解决方案都可以正常工作,您需要自己决定是否需要灵活性,或者您是否 prefer/need 保持简单;我使用这两种方法,具体取决于项目。