【问题标题】:Kinesis stream to AWS lambdaKinesis 流到 AWS lambda
【发布时间】:2019-06-28 18:20:43
【问题描述】:

我目前正在使用 DynamoDB 流,并期待迁移到 Kinesis 流,因为我想控制我想从流中处理的记录数量。

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

我只想知道,如果我为 Kinesis 流使用 lambda,预期的行为是什么?

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

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

谁能解释我如何在 Lambda 中控制 Kinesis 流?

【问题讨论】:

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


【解决方案1】:

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

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

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

【讨论】:

  • 假设您将批量大小设置为 500。它是否要等到有 500 条记录才触发?
  • 你的意思是说,你不能控制来自 Lambda 的 Kinesis 流?但反过来呢?
  • DynamoDB 流是否也像您在上面对 Kinesis 流所解释的那样对 lambda 执行相同的操作?
  • 已编辑以回答您的两个问题,但我不确定您对 Kinesis 流控制 lambda 或反之的要求。
  • 对不起。让我解释。当流中有可用记录时,我想要 Lambda 触发器。我想直接从流中读取记录,而不是从事件中读取记录。有可能吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-26
  • 2020-02-08
相关资源
最近更新 更多