无效的属性值类型:DynamoDB Put上的ValidationException

时间:2016-10-11 06:38:48

标签: node.js amazon-dynamodb

我正在尝试使用nodejs sdk在Dynamo Table上执行put项目。我尝试使用相同的文档和一些其他变体,但似乎没有任何工作。每次我收到同样的错误:

"message":"Invalid attribute value type"
"code":"ValidationException"
"time":"2016-10-11T06:32:26.361Z"
"statusCode":400
"retryable":false

以下是相关的代码段:

var params = {
    TableName: "MY_Table_Name",
    Item: { 
        "stringAtt": "stringValue",
        "boolAtt": true,
        "numAtt": 123,
    },
};
docClient.put(params, function(err, data) {
    if (err) ppJson(err); // an error occurred
    else ppJson(data); // successful response
});

我的表格索引如下:

  

主要:分区键:stringAtt,排序键:boolAtt
  GSI:分区键:boolAtt,排序键:numAtt

我不确定我的查询或索引结构是否错误。

1 个答案:

答案 0 :(得分:1)

BOOL数据类型不能是键属性(即分区或排序键)。分区或排序键数据类型可以有三种类型(如下所列)。如果您使用类型&#39; B&#39; 的排序键创建了表格,则表示排序键的类型为二进制(即不是Bool)。< / p>

  

AttributeType:&#39; S | N | B&#39;

     

S - 该属性的类型为String

     

N - 该属性的类型为Number

     

B - 该属性的类型为Binary

当使用 BOOL 类型的密钥创建表格时,API会抛出以下异常。

Unable to create table. Error JSON: {
  "message": "Member must satisfy enum value set: [B, N, S]",
  "code": "ValidationException",