仅在处理了相同主题的SQS订阅后才调用AWS Lambda SNS事件

Ken*_*nnu 8 amazon-sqs amazon-web-services amazon-sns aws-lambda

我想实现Amazon SNS主题,该主题首先将消息传递到作为主题订阅者的SQS队列,然后执行AWS Lambda函数,该函数也是同一主题的订阅者.然后,Lambda函数可以从SQS队列中读取消息并并行处理其中几个(数百个).

我的问题是,是否有任何方法可以保证发送到SNS主题的消息首先被传递到SQS队列,然后才传递给Lambda函数?

这样做的目的是扩展到大量消息,而不必为每个消息单独执行Lambda函数.

kix*_*orz 1

您正在寻找的东西目前无法通过 1 来实现SNS Topic。如果您订阅了特定的Lambda内容,则每次收到消息时都会并行执行。SNS TopicLambdaSNS Topic

解决方案可能是拥有两个SNS Topics并向第一个发布消息并让您SQS订阅它。成功向第一个主题提交消息后,您可以向第二个主题发送消息SNS Topic以执行Lambda处理第一个SNS Topic存储到的消息SQS

另一种可能的解决方案可能是上面的内容,您可以只向第二个主题发送一些定期消息来运行订阅的Lambda. 这将允许您扩展您的Lambda SQS Workers.