Dynamodb getBatchItem ValidationException

时间:2015-07-01 14:56:22

标签: node.js amazon-dynamodb

在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 }

2 个答案:

答案 0 :(得分:1)

看起来AWS Node JS有一个错误,因为我们不需要提及密钥的数据类型。

我试过这个并且效果很好

{
"RequestItems":{
  "<TableName>":{
    "Keys":[
         {"<HashKeyName>":"<HashKeyValue1>", "<RangeKeyName>":"<RangeKeyValue2>"},
         {"<HashKeyName>":"<HashKeyValue2>", "<RangeKeyName>":"<RangeKeyValue2>"}
        ]
    }
  }
}

答案 1 :(得分:0)

当表的架构与您提供的键的键架构不匹配时,会出现此错误。您提供了一个Hash = String和Range = String的键。你桌子的架构是什么?您可以使用DescribeTable API获取表格的架构。