为什么 Lambda 函数的批处理大小会小于配置的批处理大小?

上次更新时间:2021 年 7 月 2 日

在处理 Amazon Kinesis Data Streams 时,我的 AWS Lambda 函数的批处理大小要小于我配置的批处理大小。为什么我的 Lambda 函数每次调用接收的记录少于我在 Amazon Kinesis 事件源中配置的批处理大小?

解决方法

您在配置 Kinesis 事件源时设置的批处理大小决定了 Lambda 函数可以处理的最大批处理大小。Kinesis 事件源调用函数时处理的批处理大小可能会小于您配置的批处理大小。

在 Kinesis 事件源调用您的 Lambda 函数时,以下四个值决定了该函数处理的批处理大小:

  • 配置 Kinesis 事件源时设置的批处理大小上限。
  • 在轮询事件源时从 Lambda 发出的 GetRecords 操作接收的记录数。
  • 6MB 的 Lambda 调用负载大小限制内可以容纳的记录数。
    注意:记录大小越大,则负载可容纳的记录数就越少。
  • Kinesis Data Streams 中的数据量。
    注意:如果 Kinesis Data Streams 上的流量较低,则函数处理的批处理大小将会更小。

要计算函数将处理的大致批处理大小,请使用以下公式:

6000 KB Lambda invocation payload size limit ÷ The size of an individual record in your batch (in KB) = Approximate number of records processed for each batch

例如,如果批处理中的每条记录为 64 KB,则可以预计您的函数每个批处理将会大约处理 90 条记录。


这篇文章对您有帮助吗?


您是否需要账单或技术支持?