AWS 无服务器设置用于重复任务?

AWS 无服务器设置用于重复任务?

我有一个包含许多项目的数据库。每天至少一次,我想循环遍历此数据库中的所有项目,并针对每个项目调用外部 API 来获取有关该项目的当前数据并将其存储在我的数据库中。

考虑到这种情况,我考虑以以下方式使用 Lambda、DynamoDB 和 SNS:

  • 循环遍历 DynamoDB 中的所有项目的预定 Lambda(工作者)
  • 对于每个商品,发布到 SNS 主题,其中包含有关该特定商品的详细信息
  • 另一个 Lambda(消费者/处理器)监听该 SNS 主题以获取每个项目
  • 对于收到的每个项目,执行对外部 API 的请求并更新 DynamoDB 中的项目

此设置应具有可扩展性、易于使用/配置/维护,并且希望具有成本效益。但是,如果 DynamoDB 每天至少循环一次 1000 多个项目,它能处理吗?此设置具有容错能力吗?如果我想每天触发多次,它能处理吗?更重要的是,如果每小时触发一次,它是否仍然具有成本效益?有没有更好的方法?

不知怎的,我觉得我应该使用 SQS,但在运行无服务器时它可能并不是很有用,因为您无法轮询队列来获取要处理的新项目?

相关内容