AWS Lambda,DynamoDB无法删除对象

时间:2017-03-21 22:19:43

标签: node.js amazon-web-services lambda amazon-dynamodb

这是我的lambda函数

var AWS = require("aws-sdk");
var dynamodb = new AWS.DynamoDB();
var docClient = new AWS.DynamoDB.DocumentClient();
exports.handler = (event, context, callback) => {

var params = {
    TableName: 'xx',
    Key: {
        project_id : event.id,
        name: event.name
    }
};

docClient.delete(params, function(err, data) {
    if (err) {
        console.error("Unable to read item. Error JSON:", JSON.stringify(err, null, 2));
    } else {
         callback(null, data);
     }}
 );
};

我的测试活动是

{
"id": "1490022172442",
"name":"xcv"
}

仍然有错误“提供的关键元素与架构不匹配”。 POST和GET工作得很好,但我被困在这里。

2 个答案:

答案 0 :(得分:1)

要从DynamoDB表中删除项目,您必须在键属性中提供分区和排序键。如果在键属性上包含排序键,它应该有效。

答案 1 :(得分:0)

下面给出的是用于删除只有主键而没有提供排序键的项目的代码段

ar AWS = require("aws-sdk");
var dynamodb = new AWS.DynamoDB();
var docClient = new AWS.DynamoDB.DocumentClient();
exports.handler = (event, context) => {
console.log('event= ' + JSON.stringify(event));
console.log('context= ' + JSON.stringify(context));

var params = {
TableName: 'TableName',
Key: {
    kundeId : event.kundeId,
    name: event.name
}
};

docClient.delete(params, function(err, data) {
if (err) {
    console.error("Unable to read item. Error JSON:", JSON.stringify(err, null, 2));
} else {
     console.log("DEBUG:  deleteItem worked. ");
    context.succeed(data);

 }}
 );
 };