我正在尝试使用Lambda函数读取上一行并更新最新行。
我有一个网关来更新DynamoDB表的某些列,我需要在最新行的其他列中复制信息。
我正在从DynamoDB流中读取信息。
我的Lambda函数代码:
var AWS = require("aws-sdk");
AWS.config.update({
region: "us-east-2",
endpoint: 'https://dynamodb.us-east-2.amazonaws.com',
accessKeyId: "AccessKey",
secretAccessKey: "SecretAccessKey"
});
var dynamodbstreams = new AWS.DynamoDBStreams();
var docClient = new AWS.DynamoDB.DocumentClient();
exports.handler = function(event, context) {
var params = {
StreamArn: "StreamArn"
};
dynamodbstreams.getRecords(params, function(err, result) {
if (err) {
console.log(err, err.stack);
} else {
var params = {
TableName: "TableName",
Key: {
"FaKe_Key": "MyKeY",
"datetm": result.Items[0].datetm
},
UpdateExpression: "set item_one = :a, item_two = :b, item_three = :c",
ExpressionAttributeValues:{
":a":result.Items[0].item_one,
":b":result.Items[0].item_two,
":c":result.Items[0].item_three
},
ReturnValues:"UPDATED_NEW"
};
docClient.update(params, function(err, data) {
if (err) {
console.log("Error in updateItem "+err);
} else {
console.log("Successfully Inserted");
}
});
}
});
};
Lambda函数在Lambda管理页面中返回OK
响应。
Last processing result: OK
我的排序键是DynamoDB表更新时事件的时间戳。
Lambda环境为Node.js 6.10
。
如果有人能指出我正确的方向,我将不胜感激。