Dynamodb流+ Lamda + NodeJS

时间:2018-06-04 11:32:50

标签: node.js aws-lambda amazon-dynamodb

非常基本的问题。我有两个dynamodb表。 Table1包含值列表,Table2将包含值的总和(平均值等)。

我正在使用dyndamodb流来触发lamda函数来计算Table1中数据的聚合值,然后使用这些值更新Table2。我的问题是,dyndamodb流是否包含ENTIRE table1或仅包含新记录?

我只是调整lambda函数来计算平均值并存储到Table2中,我只想尝试计划最佳方法。一切似乎都在起作用。只是绊倒从table1获取数据。关于forEach记录的任何其他提示也将受到高度赞赏。谢谢!

1 个答案:

答案 0 :(得分:0)

只有修改过的字段,否则每次流整个数据库都没有多大意义?来自文档:https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Streams.Lambda.Tutorial.html

您将收到如下消息:

{
    "Records": [
        {
            "eventID": "7de3041dd709b024af6f29e4fa13d34c",
            "eventName": "INSERT",
            "eventVersion": "1.1",
            "eventSource": "aws:dynamodb",
            "awsRegion": "us-west-2",
            "dynamodb": {
                "ApproximateCreationDateTime": 1479499740,
                "Keys": {
                    "Timestamp": {
                        "S": "2016-11-18:12:09:36"
                    },
                    "Username": {
                        "S": "John Doe"
                    }
                },
                "NewImage": {
                    "Timestamp": {
                        "S": "2016-11-18:12:09:36"
                    },
                    "Message": {
                        "S": "This is a bark from the Woofer social network"
                    },
                    "Username": {
                        "S": "John Doe"
                    }
                },
                "SequenceNumber": "13021600000000001596893679",
                "SizeBytes": 112,
                "StreamViewType": "NEW_IMAGE"
            },
            "eventSourceARN": "arn:aws:dynamodb:us-east-1:123456789012:table/BarkTable/stream/2016-11-16T20:42:48.104"
        }
    ]
}

不知道你需要什么样的聚合,也不知道你的用例,所以我无法帮助你。