2017-04-06 90 views
1

从AWS SNS FAQ page(可靠性部分)我可以看到,SNS保证向SQS至少发送一次消息,但是不清楚在向Lambda发送通知时是否适用相同的情况。AWS SNS向AWS Lambda传递的可靠性

因此,在向AWS Lambda发送消息时,SNS是否会提供至少一次消息传递?

+0

这是一个理论问题,还是您正在经历一个可能的问题? –

+0

在选择正确的方法之前,这完全是一个理论问题。 – isaranchuk

+0

[此](http://docs.aws.amazon.com/sns/latest/dg/msg-status-topics.html)有帮助吗? –

回答

1

同样FAQ page指出

当消息被发布到一个话题,亚马逊SNS将尝试发送通知,该主题注册的所有用户。由于潜在的互联网问题或电子邮件传递限制,有时通知可能无法成功地到达HTTP或电子邮件终端。在HTTP的情况下,可以使用SNS传输策略来控制重试模式(线性,几何,指数退避),最大和最小重试延迟以及其他参数。如果成功处理所有发布的消息至关重要,则开发人员应将通知发送到SQS队列(除了通过其他传输的通知之外)。

这适用于所有非SQS用户

+0

我看到了这个部分,但他们在FAQ中也有一个关于AWS Lambda的独立部分,所以我有点困惑。 – isaranchuk

+0

没错。但是在那里我没有看到有关交付部分的任何提及。那么你有什么困惑 –

0

我觉得你的问题是:一个lambda函数,订阅到SNS的话题,可以对任何消息至少调用一次或一次?

如果是这样,答案是:至少一次。以下部分来自FAQs有助于回答这个问题,有重点矿:

问:用户会多少次收到的每条消息?

虽然大多数的每封邮件将发送到您的应用程序恰好一次的时候,亚马逊SNS和瞬态网络条件的分布式特性可能会导致在用户端偶然的,重复的消息。开发人员应该设计他们的应用程序,以便多次处理消息不会产生任何错误或不一致。