AWSのJava SDKを経由して、削除をしようとすると、私は提供重要な要素は、スキーマ(サービスと一致しないエラーAWS DynamoDBの削除
取得:AmazonDynamoDBv2;ステータスコード:400;エラーコードを:;:私はこの
DeleteItemSpec deleteItemSpec = new DeleteItemSpec() .withPrimaryKey("pk", messageId) .withConditionExpression("#ip > :val") .withNameMap(new NameMap() .with("#ip", "timestamp")) .withValueMap(new ValueMap() .withNumber(":val", 0)) .withReturnValues(ReturnValue.NONE);
のように見える定義された項目削除スペックを持っている52N303HS3D535K28KSN3R3803VVV4KQNSO5AEMVJF66Q9ASUAAJG)
ValidationExceptionは、IDをリクエストそして私のテーブルはこのように作成されました
List<AttributeDefinition> attributeDefinitions = new ArrayList<>();
attributeDefinitions.add(new AttributeDefinition()
.withAttributeName("pk")
.withAttributeType(ScalarAttributeType.S));
attributeDefinitions.add(new AttributeDefinition()
.withAttributeName("timestamp")
.withAttributeType(ScalarAttributeType.N));
List<KeySchemaElement> keySchema = new ArrayList<>();
keySchema.add(new KeySchemaElement()
.withAttributeName("pk")
.withKeyType(KeyType.HASH));
keySchema.add(new KeySchemaElement()
.withAttributeName("timestamp")
.withKeyType(KeyType.RANGE));
タイムスタンプのソートキーがこの問題を引き起こしているのだろうかと思います。 > 0以外のタイムスタンプを指定する必要がありますか?