我目前正在使用DynamoDB流,并希望转向Kinesis流,因为我想控制我希望从流中处理的记录数。
我一直在阅读有关Kinesis流和lambda的信息。关于Kinesis流和EC2的文章很多,其中有多个使用者和KCL等。
我只想知道,如果我将lambda用于Kinesis stream,那么预期的行为是什么?
我正在寻找以上的第二个选项。我不希望通过记录集来触发lambda,但我想控制读取的数量。
谁能解释我如何在Lambda中获得对Kinesis流的控制?
答案 0 :(得分:0)
您可以为Lambda订阅Kinesis流。订阅后,您可以指定批次大小,如我记得的那样,为1到1000。 当有可用的记录达到批量大小时,将为流中的每个分片调用lambda。如果lambda错误(例如,返回错误或超时),则会使用相同的数据重试。它将重试,直到成功或记录过期。 如果有记录,则每个分片每秒将调用一次lambda。可以调用lambda并使用任何可用的记录,直到批处理大小为止。
每个分片将只有一个并发的lambda调用。这是为了保证分片内记录的顺序。
通常,Kinesis流的行为与DynamoDB流的行为相同。