我正在尝试从一个DynamoDB表复制最新更新,并使用Lambda将它们放入另一个表中。我在DynamoDB中设置了一个触发器,当使用' Blueprint'在表格上发生新条目时更新Lambda函数。我需要帮助将最新项目放入新表中。
这是我的Lambda代码:
'use strict';
console.log('Loading function');
exports.handler = (event, context, callback) => {
//console.log('Received event:', JSON.stringify(event, null, 2));
event.Records.forEach((record) => {
console.log(record.eventID);
console.log(record.eventName);
console.log('DynamoDB Record: %j', record.dynamodb);
});
callback(null, `Successfully processed ${event.Records.length} records.`);
};
这是我第一次这样做,所以任何帮助都会受到赞赏。
试图放入表#2的项目是:
{ "Item": { "Temp": "47.2", "Light": "29", "GWID": "BB00000002", "DateTm": "0\n18-05-05T16:44:39Z", "Status": "b", "ID": "AA00000024", "Hum": "29", "BatV": "3.01" } }
答案 0 :(得分:0)
不确定我是否理解你,但是你检查了dynamoDB SDK来进行插入吗? https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#putItem-property
答案 1 :(得分:0)
如果我做对了,即“我想在表#2中有一个项目反映了表#1中的最新项目。不是整个表#1”,则有多种方法可以完成任务您正在寻找:
var uniqueEvents = _.chain(event.Records)
.reverse()
.uniqBy(function (record) {
return record.dynamodb.Keys.id.S;
})
.value();
选择2是您的选择,比选择1更可取(聊天次数少,价格便宜)