这是我的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工作得很好,但我被困在这里。
答案 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);
}}
);
};