【问题标题】:Scheduled reading of DynamoDB Stream定时读取 DynamoDB Stream
【发布时间】:2017-05-17 03:44:25
【问题描述】:
我正在寻找一种按预定时间间隔从 DynamoDB 批量读取更新的方法。
例如,我希望每 10 分钟能够读取自上次读取以来发生的对 DynamoDB 表的所有更新。
我了解可以设置 DynamoDB 流来触发 Lambda 函数。 Lambda 是否可以在特定时间间隔内批量处理所有更新?一次性处理完?
【问题讨论】:
标签:
amazon-web-services
aws-lambda
amazon-dynamodb-streams
【解决方案1】:
是的。
您需要设置一个云监视警报(每 10 分钟一次,如 cronjob,并将其配置为您的 lambda 触发器。
但是(!),您将需要编写读取 dynamodb 流的代码,这将是一个挑战。
您需要将在 dynamodb 流中处理的最后一个位置保存在某个地方(另一个 dynamodb 表、S3 或 redis) - 这样您就不会处理两次相同的更新。
我强烈建议您使用默认拓扑,并将触发器设置为 dynamodb,然后您的 lambda 将获取更新记录作为输入。 AWS 为您管理流中的位置,这(与其他选项不同)是一种可扩展的解决方案。