You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

连接DynamoDB流的Lambda是否会发送含重叠记录的不同批次?

连接DynamoDB流的Lambda是否会收到重叠但非完全重复的批次?

会的,你描述的这种情况是可能出现的。

DynamoDB流按分片处理记录,每个分片内的记录是有序传递的,但Lambda处理批次时,一旦出现超时、部分处理失败,或者检查点未正确推进到批次末尾的情况,就可能拉取到包含重复记录的非完全重叠批次。

比如你提到的场景,就可能出现这样的调用序列:

  1. 批次1:[{"newImage":{"name":"alpha"},"eventId":"01"},{"newImage":{"name":"bravo"},"eventId":"02"}]
  2. 批次2:[{"newImage":{"name":"bravo"},"eventId":"02"},{"newImage":{"name":"charlie"},"eventId":"03"}]

原因很简单:如果Lambda处理第一个批次时,检查点只更新到了eventId:01之后,那下一次拉取流记录时,会从这个检查点位置重新开始,自然会把未确认处理完成的bravo和后续的charlie打包成新批次发送。

所以编写Lambda处理器时,必须保证逻辑是幂等的——哪怕同一条记录被多次处理,也不会产生重复的业务影响,比如重复写入数据、重复发送通知等。

内容的提问来源于stack exchange,提问作者David

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 08:07:15