我正在尝试使用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
我不确定我的查询或索引结构是否错误。
答案 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",