我想运行一个批处理操作,我的脚本调用Pagespeed Insights API的url列表,返回JSON并将其保存到Dynamo。每个API响应平均在20-30秒之间,所以在Lambda超时之前最多可能有30个url。我最终会有一个200+的url列表。
最好的方法/堆栈是什么?
让Lambda函数将url放入SQS队列中,并为队列中的消息调用另一个Lambda函数。第二个Lambda处理查询一个URL并将结果存储在DynamoDB中。如果使用SQS出现问题,您还会获得重试。
可以通过为第二个Lambda函数设置并发限制来限制并发执行。您还可以为SQS集成配置批处理,并让每个Lambda调用处理最多10个url。