我正在寻找一种在预定的时间间隔内从DynamoDB批量读取更新的方法。
例如,每隔10分钟,我希望能够读取自上次读取以来发生的DynamoDB表的所有更新。
我了解DynamoDB Streams可以设置为触发Lambda函数。无论如何Lambda都会在一定的时间间隔内批量处理所有更新吗?要一次处理吗?
答案 0 :(得分:2)
是。
你需要设置一个云监视闹钟(每10分钟,就像一个cronjob,并将其配置为你的lambda的触发器。
但是(!),你需要编写读取dynamodb流的代码,这将是一个挑战。
你需要在某个地方(另一个dynamodb表,S3或redis)持久保存在dynamodb流中处理的最后一个位置 - 这样你就不会两次处理同一个更新。
我强烈建议您使用默认拓扑,并将触发器设置为dynamodb,然后您的lambda将获取更新的记录作为输入。 AWS为您管理流上的位置,并且(与其他选项不同)是可扩展的解决方案。