Amazon web services 仅从DynamoDB表中获取最新的项目,并通过Lambda将其放入另一个DynamoDB表中

Amazon web services 仅从DynamoDB表中获取最新的项目,并通过Lambda将其放入另一个DynamoDB表中,amazon-web-services,aws-lambda,amazon-dynamodb,Amazon Web Services,Aws Lambda,Amazon Dynamodb,我试图从一个DynamoDB表中复制最新的更新,并使用Lambda将它们放到另一个表中。我在DynamoDB中设置了一个触发器,以便在表上出现新条目时使用“Blueprint”更新Lambda函数。我需要帮助把最新的项目放到新表中 这是我的Lambda代码: 'use strict'; console.log('Loading function'); exports.handler = (event, context, callback) => { //console.log(

我试图从一个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”}
我不确定是否理解您的意思,但您是否检查了dynamoDB SDK以进行插入

如果我做对了,即“我想在表2中有一个项目反映表1中最新的项目。而不是整个表1”,有多种方法可以实现您想要的:

  • 设置为1。dynamodb表#1中的每一次更改都将调用lambda函数,您可以对表#2使用操作
  • 仅增加并处理批处理中的最新事件。比如:
  • var uniqueEvents=\uu.chain(event.Records)
    .reverse()
    .uniqBy(功能(记录){
    返回记录.dynamodb.Keys.id.S;
    })
    
    .value()我认为最好使用Dynamo Stream,以访问最新更新的:@Franky感谢您的评论,但正如我所说,我对此非常陌生;我已经启用了正在侦听的表上的流,并且设置了Lambda函数。但是您建议直接从流中获取项目?我正在尝试使用Javascript显示这些值。如果你能解释一下你的评论,那就好了。你的目标是在表#2中有一个反映表#1中最新项目的项目吗?还是将整个表#1复制到表#2?@jarmod我想在表#2中有一个反映表#1中最新项的项。不是整个表#1。是的,我确实阅读了本指南,但我不明白如何将其包含在上面给出的Lambda函数中。我希望Lambda函数从表#1中读取最新的项,并在任何项的表#1中进行更新时将其放入表#2中。因此,这些是具有ID的不同节点,我希望表#2中的每个节点ID都有一行,以及表#1中最新更新的值。我不清楚您的应用程序的当前状态是什么,或者问题是什么,您是否通过dynamoDB流将事件接收到lambda中?当dynamoDB更新时,lambda是否记录了什么?lambda函数按预期工作,但它仅在更新发生时检索值。它没有向表#2写入任何内容,因为我不知道在我在Qs帖子中给出的代码之后要添加什么代码。你能用
    事件
    对象更新你的问题,看看你需要处理哪些数据吗?请现在检查。我已经编辑了Qs。谢谢你的帮助。