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

在CLI中执行DynamoDB PutItem命令遇ValidationException报错求助

解决DynamoDB PutItem ValidationException报错

问题根源分析

你的报错信息明确指出缺少键"Team Name",但你提到分区键是City,这说明存在以下两种核心矛盾点:

  1. 你可能记错了表的实际主键配置,表的分区键其实是Team Name(而非你以为的City)
  2. 当前put-item命令里完全未包含City字段——如果分区键真的是City,报错应该提示缺少City而非Team Name,这进一步验证表的主键实际为Team Name

修复方案

步骤1:确认表的真实主键配置

先通过CLI命令查看表的结构,明确实际主键信息:

aws dynamodb describe-table --table-name NBATeams --region us-east-1

在返回结果的KeySchema模块中,HASH类型的字段就是分区键,核对其名称是否与你的认知一致。

步骤2:根据真实主键修正PutItem命令

  • 如果确认分区键是Team Name:修改item的键名,注意空格需正确匹配表定义:
aws dynamodb put-item \
--table-name NBATeams \
--item '{"Team Name": {"S": "Phoenix Suns"}, "Title": {"S": "Suns"}}' \
--region us-east-1
  • 如果确认分区键是City:在item中强制添加City字段(必须包含主键字段才能写入):
aws dynamodb put-item \
--table-name NBATeams \
--item '{"City": {"S": "Phoenix"}, "Team": {"S": "Suns"}, "Title": {"S": "Suns"}}' \
--region us-east-1

额外注意:避免JSON转义异常

你原命令中使用"转义双引号,在部分终端环境下可能导致解析错误,建议直接用单引号包裹外层JSON,内层用双引号(无需转义),降低解析异常概率。

核心规则提醒

DynamoDB写入item时,必须包含表的所有主键字段(分区键+排序键,若存在),且键名需与表定义严格一致(区分大小写、空格)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 22:15:30