在dynamodb表上运行batchGetItem函数时获取ValidationException。我在键列表下给出了散列键和范围键。这是请求和回复。
请求:
var params = {"RequestItems":{"table":{"Keys":[{"hash_key":{"S":"xx.xxx.xxx.xxx"}},{"range_key":{"S":"xxxxx"}}]}}};
dynamodb.batchGetItem(params,function(err, res) {if(err) {console.log(err)}else{console.log(res);}});
响应:
{ [ValidationException: The provided key element does not match the schema]
message: 'The provided key element does not match the schema',
code: 'ValidationException',
time: Tue Jun 30 2015 17:34:07 GMT-0400 (EDT),
statusCode: 400,
retryable: false,
retryDelay: 0 }
答案 0 :(得分:1)
看起来AWS Node JS有一个错误,因为我们不需要提及密钥的数据类型。
我试过这个并且效果很好
{
"RequestItems":{
"<TableName>":{
"Keys":[
{"<HashKeyName>":"<HashKeyValue1>", "<RangeKeyName>":"<RangeKeyValue2>"},
{"<HashKeyName>":"<HashKeyValue2>", "<RangeKeyName>":"<RangeKeyValue2>"}
]
}
}
}
答案 1 :(得分:0)
当表的架构与您提供的键的键架构不匹配时,会出现此错误。您提供了一个Hash = String和Range = String的键。你桌子的架构是什么?您可以使用DescribeTable API获取表格的架构。