【发布时间】:2016-07-30 03:03:12
【问题描述】:
我正在尝试更新我的 Dynamodb 表 +Users+ 中的一个项目。我尝试了许多不同的方法,但总是收到相同的错误消息:
提供的关键元素与架构不匹配
项目的创建和查询一样有效,但更新无效。当我检查 DynamoDB 时,用户创建良好:
{
"email": "test@email.com",
"password": "123",
"registration": 1460136902241,
"verified": false
}
这是表格信息:
- 表名:用户
- 主分区键:电子邮件(字符串)
- 主排序键:注册(编号)
这是代码(从 lambda 调用):
exports.handler = function(event, context)
{
var AWS = require("aws-sdk");
var docClient = new AWS.DynamoDB.DocumentClient();
var params = {
TableName: "Users",
Item:{
email: "test@email.com",
password: "123",
verified: false,
registration: (new Date()).getTime(),
}
};
// Create the user.
docClient.put(params, function(err, data)
{
if (err)
{
context.fail("Put failed...");
return;
}
var params = {
TableName: "Users",
Key: { email : "test@email.com" },
AttributeUpdates: {
verified: {
Action: "PUT",
Value: true
}
}
};
// Update the user.
docClient.update(params, function(err, data)
{
if (err)
{
console.log(JSON.stringify(err));
context.fail(JSON.stringify(err));
return;
}
context.succeed("User successfully updated.");
});
});
};
您知道我的代码有什么问题吗?
【问题讨论】:
标签: amazon-web-services amazon-dynamodb