DynamoDB Stream Lambda触发器未发送INSERT事件至Lambda的问题
问题排查方案
- 先确认你的
putItem操作是不是真的在插入全新条目:如果调用putItem时指定的主键(分区键+排序键,如果有的话)已经存在于表中,这个操作本质是覆盖更新,流事件会是MODIFY而不是INSERT。可以直接在DynamoDB控制台手动插入一条主键完全不存在的测试数据,看流会不会触发INSERT事件,这是最容易排查的点。 - 检查DynamoDB流的事件类型筛选配置:虽然你启用了
NewImages,但流的触发器可能被设置为只监听MODIFY事件。去Lambda的触发器配置里,查看DynamoDB流的事件类型选项,确认是否勾选了INSERT。 - 关于全局二级索引(GSI):GSI的创建、更新不会触发主表的流事件,只有主表的写入操作才会触发,所以你表中的2个GSI和当前
INSERT事件不触发的问题无关,可以排除这个因素。 - 排查流的起始位置设置:如果流的起始位置设为
LATEST,那只有配置完成之后的新操作才会被捕获。如果你的测试操作是在流配置之前执行的,自然不会触发。可以重新执行一次putItem插入新主键数据,再观察Lambda的触发情况。 - 检查
putItem的代码逻辑:确认代码中生成的主键值是唯一的,有没有循环写入同一个主键的情况,比如主键值被硬编码或者生成逻辑有问题导致重复覆盖。
内容的提问来源于stack exchange,提问作者void
相关产品推荐
相关产品推荐

