DynamoDB流触发所有记录的调用

时间:2017-08-07 09:29:07

标签: amazon-web-services amazon-dynamodb aws-lambda amazon-dynamodb-streams

我尝试从DynamoDB表设置ElasticSearch导入过程。我已经创建了AWS Lambda并使用触发器启用了DynamoDB流,该触发器为每个添加/更新的记录调用我的lambda。现在我想执行初始种子操作(将当前在DynamoDB表中的所有记录导入到ElasticSearch)。我怎么做?有没有办法让表中的所有记录都被重新处理"并添加到流(所以他们可以由我的lambda处理)?或者更好的是编写一个单独的函数来手动读取表中的所有数据并将其发送到ElasticSearch - 所以基本上有2个lambdas:一个用于初始数据迁移(仅执行一次并由我手动触发),另一个用于同步新记录(由DynamoDB流事件触发)?

感谢所有帮助:)

1 个答案:

答案 0 :(得分:2)

根据您的数据集的大小,您将无法在Lambda中为数据库设定种子,因为最大超时时间为300 seconds(编辑:现在是15分钟,感谢@matchish)。

您可以启动EC2实例并使用SDK执行DynamoDB scan operation并批量写入您的Elasticsearch实例。

您还可以使用Amazon EMR执行地图缩减作业export to S3,然后处理您的所有数据。