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