Kinesis流到AWS Lambda

时间:2019-06-28 18:20:43

标签: amazon-web-services aws-lambda amazon-kinesis

我目前正在使用DynamoDB流,并希望转向Kinesis流,因为我想控制我希望从流中处理的记录数。

我一直在阅读有关Kinesis流和lambda的信息。关于Kinesis流和EC2的文章很多,其中有多个使用者和KCL等。

我只想知道,如果我将lambda用于Kinesis stream,那么预期的行为是什么?

  • 像Dynamo流一样,当Kinesis在流中有记录时,事件中的一堆记录会触发lambda吗?
  • 只要Kinesis流中有记录,Lambda就会被触发,Lambda可以继续读取分片以获取记录并进一步处理。

我正在寻找以上的第二个选项。我不希望通过记录集来触发lambda,但我想控制读取的数量。

谁能解释我如何在Lambda中获得对Kinesis流的控制?

1 个答案:

答案 0 :(得分:0)

您可以为Lambda订阅Kinesis流。订阅后,您可以指定批次大小,如我记得的那样,为1到1000。 当有可用的记录达到批量大小时,将为流中的每个分片调用lambda。如果lambda错误(例如,返回错误或超时),则会使用相同的数据重试。它将重试,直到成功或记录过期。 如果有记录,则每个分片每秒将调用一次lambda。可以调用lambda并使用任何可用的记录,直到批处理大小为止。

每个分片将只有一个并发的lambda调用。这是为了保证分片内记录的顺序。

通常,Kinesis流的行为与DynamoDB流的行为相同。