【问题标题】:Scaling of Lambda functions for SNS trigger为 SNS 触发器扩展 Lambda 函数
【发布时间】:2018-03-28 12:33:51
【问题描述】:
我有一个由 SNS 主题触发的 Lambda 函数。如果 Lambda 达到其最大并发执行的限制并且无法进一步扩展,那么发布到 SNS 主题的消息会发生什么情况?
例如,假设我的 SNS 主题每秒接收 1000 条消息,但 Lambda 只能扩展到每秒处理 600 条消息。根据我对 SNS 的了解,它是一种发布/订阅机制,其中不能有积压(与 SQS、Kinesis 等不同)。那么每秒额外的 400 条消息会发生什么?
另外,我如何监控我的 Lambda 是否能够以 SNS 接收消息的速率进行处理?
【问题讨论】:
标签:
amazon-web-services
aws-lambda
amazon-sns
【解决方案1】:
要回答您的第一个问题,您需要联系 AWS Lambda 的 understand the retry behavior。请参阅文档中的以下引用。
异步调用 – 异步事件在被排队之前
用于调用 Lambda 函数。如果 AWS Lambda 无法完全
处理事件,它会自动重试调用两次,
重试之间有延迟。如果您指定了死信队列
对于您的函数,然后将失败的事件发送到指定的
Amazon SQS 队列或 Amazon SNS 主题。如果你不指定一个死
信函队列 (DLQ),不是必需的,是默认设置,
那么该事件将被丢弃。有关详细信息,请参阅已死
信件队列。
回答您的第二个问题:
你可以使用AWS CloudWatch。
有两个你感兴趣的指标:
- AWS/Lambda - 调用
- AWS/SNS - NumberOfMessagesPublished