我认为您的问题是:订阅SNS主题的Lambda函数是否会被调用至少一次或仅对任何消息调用一次?
如果是这样,答案是:至少一次。以下部分来自 常见问题解答 有帮助回答这个问题 重点 矿:
的 问:订阅者收到每条消息的次数是多少? 强> 虽然大多数情况下每条消息都会传递给您的应用程序一次,但Amazon SNS的分布式特性和瞬态网络条件 可能导致订户端偶尔出现重复的消息 。开发人员应设计其应用程序,以便多次处理消息不会产生任何错误或不一致。
的 问:订阅者收到每条消息的次数是多少? 强>
虽然大多数情况下每条消息都会传递给您的应用程序一次,但Amazon SNS的分布式特性和瞬态网络条件 可能导致订户端偶尔出现重复的消息 。开发人员应设计其应用程序,以便多次处理消息不会产生任何错误或不一致。
问:如果订阅端点不可用,Amazon SNS消息会发生什么?
Lambda:如果Lambda不可用,SNS将在1处重试2次 相隔几秒钟,然后10秒指数从1秒后退 到20分钟,最后每20分钟38次,总共50分钟 在消息被丢弃之前超过13个小时的尝试 SNS。
https://aws.amazon.com/sns/faqs/
相同 FAQ页面 说明
当消息发布到主题时,Amazon SNS将尝试向为该主题注册的所有订阅者发送通知。由于潜在的Internet问题或电子邮件传递限制,有时通知可能无法成功到达HTTP或电子邮件端点。在HTTP的情况下,SNS传递策略可用于控制重试模式(线性,几何,指数退避),最大和最小重试延迟以及其他参数。如果成功处理所有已发布的消息至关重要,则开发人员应将通知传递到SQS队列(除了通过其他传输的通知)。
这适用于所有非SQS订户