2015-08-14 78 views
10

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

回答

14

从FAQ http://aws.amazon.com/lambda/faqs/

“问:如何从Amazon的Kinesis流和亚马逊DynamoDB流AWS LAMBDA过程数据 亚马逊的Kinesis和DynamoDB行旅发送到您的AWS lambda表达式的记录是严格系列化,每个碎片。这意味着如果您将两条记录放在同一个分片中,Lambda保证您的Lambda函数将在第一条记录被第二条记录调用之前成功调用。如果一条记录的调用超时,被限制或遇到任何其他错误,Lambda将重试直到成功(或记录达到其24小时到期),然后再转到下一条记录。不能保证跨不同记录的记录排序,并且每个分片的处理都是并行进行的。“

这意味着如果您将1M项添加到Kinesis,但只有一个分片,那么节流无关紧要 - 您将只有一个Lambda函数实例从串行读取该分片,这取决于批量大小指定。您拥有的分片越多,函数将看到的并发调用就越多。如果您拥有大于100个分片的流,则您提及的帐户限额可轻松增加到AWS客户支持需要的任何分数。更多细节在这里。 http://docs.aws.amazon.com/lambda/latest/dg/limits.html

希望有帮助!