处理 Kinesis Stream 时的 AWS Lambda 限制

AWS Lambda Limits when processing Kinesis Stream

有人可以解释当 Lambda 订阅 Kinesis 项目创建事件时事件会发生什么。 AWS 中的一个帐户有 100 个并发请求的限制,因此如果将 1,000,000 个项目添加到 kinesis,这些事件是如何处理的,它们是否排队等待下一个可用的并发 lambda?

来自常见问题 http://aws.amazon.com/lambda/faqs/

"问:AWS Lambda 如何处理来自 Amazon Kinesis 流和 Amazon DynamoDB 流的数据? 发送到您的 AWS Lambda 函数的 Amazon Kinesis 和 DynamoDB Streams 记录按分片严格序列化。这意味着如果您将两条记录放在同一个分片中,Lambda 保证您的 Lambda 函数将在使用第二条记录调用之前使用第一条记录成功调用。如果一条记录的调用超时、受限或遇到任何其他错误,Lambda 将重试直到成功(或记录达到其 24 小时到期时间),然后再继续下一条记录。无法保证跨不同分片的记录顺序,并且每个分片的处理是并行发生的。"

这意味着如果您向 Kinesis 添加了 100 万个项目,但只有一个分片,节流阀无关紧要 - 您将只有一个 Lambda 函数实例根据批量大小串行读取该分片你指定的。您拥有的分片越多,您的函数看到的并发调用就越多。如果您有超过 100 个分片的流,您提到的帐户限制可以通过 AWS 客户支持轻松增加到您需要的任何值。更多细节在这里。 http://docs.aws.amazon.com/lambda/latest/dg/limits.html

希望对您有所帮助!