使用AWS CLI删除DynamoDB条目遇ValidationException错误求助
问题根源
你的DynamoDB表采用了复合主键(分区键+排序键),其中:
- 分区键是
primaryKeyAttributeName - 排序键是
sortKeyCreatedOn
你在key.json里错误地将普通属性AttributeName2作为主键的一部分传入,而get-item和delete-item操作要求必须指定完整的主键组合,这直接导致了ValidationException错误。
至于query命令能正常工作,是因为query只需要指定分区键,就可以返回该分区下的所有条目,不需要排序键。
解决方法
- 确认表的主键结构(可选但推荐)
执行以下命令查看表的主键定义,确保你对主键的判断正确:
aws dynamodb describe-table --table-name table-name
返回结果的KeySchema字段里,会明确显示分区键(KeyType: HASH)和排序键(KeyType: RANGE)的名称。
- 修正
key.json内容
将key.json中的AttributeName2替换为正确的排序键sortKeyCreatedOn,并填入对应条目的排序键值:
{ "primaryKeyAttributeName": {"S": "2024-06-17"}, "sortKeyCreatedOn": {"S": "2024-06-17Txx:xx:xx.xxx"} }
注意把xx:xx:xx.xxx替换成该条目实际的时间戳值。
- 重新执行删除命令
再次运行你原来的delete-item命令,就能正常删除目标条目了。
内容的提问来源于stack exchange,提问作者Sam
相关产品推荐
相关产品推荐

