【发布时间】:2019-06-12 20:25:43
【问题描述】:
我一直在尝试通过 java 代码从 DynamoDB 中的表中删除一个项目,但我所做的每次尝试都会导致相同的错误:
com.amazonaws.AmazonServiceException:提供的关键元素确实 与架构不匹配(服务:AmazonDynamoDBv2;状态代码:400; 错误代码:ValidationException;
我目前的尝试很简单,看起来像这样:
final DynamoDB dynamoDB = new DynamoDB(new AmazonDynamoDBClient(credentials));
Table table =dynamoDB.getTable(tableName);
DeleteItemSpec itemSpec = new DeleteItemSpec().withPrimaryKey("cognitoId", cognitoId);
table.deleteItem(itemSpec);
tablename就是简单的表名,credentials已经验证无误,cognitoId是我的item的实际ID '正在尝试删除。有问题的表有 cognitoId 作为主键,我不明白为什么删除与架构不匹配。该表还有一个排序键或范围键(我不确定它是什么,因为文档很模糊)。我一直在参考这里的文档:
http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#WorkingWithTables.primary.key
【问题讨论】:
-
这个delete item using primary key应该能帮你解决。
-
尝试使用
deleteItem(String hashKeyName, Object hashKeyValue)
标签: java amazon-web-services amazon-s3 amazon-dynamodb