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

Lambda中调用AWS DynamoDB batchWriteItem写入数据丢失问题求助

问题根因及排查方案


最可能的核心原因:复合主键重复覆盖

如果你的DynamoDB表使用复合主键(分区键+排序键),只要多条数据的分区键+排序键值完全相同,后写入的请求会静默覆盖前一条数据,既不会报错也不会返回UnprocessedItems,最终表现为仅最后一条同主键数据写入成功,这和你描述的"40条仅成功写入1条"的特征高度匹配。
你可以先核对表主键定义:如果你的主键不是仅id单列,而是类似expertId+startTime的组合,就会触发该问题,你需要保证批量写入的数据中该组合全局唯一。


其他排查方向

  • 确认环境变量process.env.API_TAP_EXPERTAVAILABILITYTABLE_NAME的值和目标表名完全一致,避免写入到错误的DynamoDB表
  • 检查Lambda执行角色的IAM权限,确认已添加dynamodb:BatchWriteItem操作的放行规则,资源匹配目标表的ARN
  • 打印Promise.all(promiseArray)返回的完整响应日志,确认所有批次的写入请求都返回成功状态,无隐藏错误字段
  • 到AWS控制台DynamoDB页面直接扫描全表验证数据:如果你的Amplify配置了表的行级所有者权限,业务侧查询可能因为权限校验过滤掉已写入的数据,导致你误以为数据丢失
  • 如果表配置了DynamoDB Streams触发器,检查关联的Lambda执行日志,确认没有写入后被其他逻辑删除数据的情况

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 23:21:03