SNS消息多次触发对Lambda函数的调用(处理中没有错误/超时)

时间:2018-09-27 06:54:52

标签: aws-lambda amazon-sns

我注意到AWS Lambda的一种行为,其中SNS消息在相同的确切时间戳上相隔数毫秒(不存在错误/超时)触发一次触发Lambda函数(已订阅SNS主题)的调用。处理中。)

将并发更新为“保留并发” => 1,enter image description here可以防止这种情况的发生,但是这样做会影响此异步Lambda函数的可伸缩性。

是否想到了为什么会发生这种情况以及如何处理以避免重复处理?

1 个答案:

答案 0 :(得分:0)

根据Lambda - Invoke AWS documentation,保证异步调用的Lambda函数至少要被调用一次

  

如果使用“事件(异步)调用”选项,则该函数将至少响应一次事件而被调用一次,并且该函数必须是幂等的。

这类似于SQS至少一次传递消息,因为您可以保证一次获得它,但也可能获得另外几次。

如果您不想将并发限制降低到1,则必须使Lambda函数成为幂等,以便它可以优雅地处理多个调用。