在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 }发布于 2015-08-12 05:40:08
看起来AWS Node JS有一个bug,因为我们不需要提到键的数据类型。
我试过了,效果很好。
{
"RequestItems":{
"<TableName>":{
"Keys":[
{"<HashKeyName>":"<HashKeyValue1>", "<RangeKeyName>":"<RangeKeyValue2>"},
{"<HashKeyName>":"<HashKeyValue2>", "<RangeKeyName>":"<RangeKeyValue2>"}
]
}
}
}发布于 2015-07-02 09:13:05
当您的表的模式与您提供的键的键模式不匹配时,会出现此错误。您使用Hash=String和Range=String提供了密钥。您的表的模式是什么?您可以使用DescribeTable应用编程接口来获取表的模式。
https://stackoverflow.com/questions/31164873
复制相似问题