处理我的 Amazon Kinesis 数据流时,AWS Lambda 函数每次调用接收的记录少于我在 Kinesis 事件源中配置的批处理大小。这是什么原因?

Lambda 函数处理的实际批处理大小取决于以下几个因素:

  • 轮询事件源时,Lambda 从 GetRecords 调用中接收的记录数。
  • 用户配置的批处理大小,即每次从流中读取的最大记录数。有关更多信息,请参阅创建事件源映射
  • Lambda 调用负载大小限制 (6MB) 内可以容纳的记录数。记录大小越大,则负载可容纳的记录数就越少。有关限制的更多信息,请参阅 AWS Lambda 限制

流中的数据量也起到了一定的作用。也就是说,Lambda 函数不会等到有更多记录后才调用。Lambda 函数会以正常速率提取记录并处理可用记录。如果流上的流量较低,则批处理大小也会较低。

使用此公式估算大概批处理大小:

6000 KB / record size in KB

例如,如果批处理中每条记录为 64KB,那么即使您配置了包含 1000 条记录的批处理大小,预计您的每次批处理应该会有大约 90 条记录。


此页内容对您是否有帮助? |

返回 AWS Support 知识中心

需要帮助? 请访问 AWS 支持中心

发布时间:2019 年 1 月 30 日