我正在迁移一个现有的NodeJS应用程序作为Lambda函数运行。到目前为止,我已经确定了发送HTTP POST请求的主函数可以放在Lambda函数中,但是,该函数是通过For循环调用的,在每次迭代之后都有一个随机延迟。For循环的迭代次数由用户请求定义。
我能想到的唯一方法是有一个正常的NodeJS进程运行"Loop"调用lambda。但这违背了我试图创建的无服务器/自动扩展架构的目的。
我可以替换下面的for循环&无服务器/自动扩展解决方案的随机延迟?
for (let i = 0; i < userTasks; i++) {
httpRequestLambda();
await delay(); // delay can be anywhere from 5 Seconds to 20 Minutes
}
以下是您可以调度AWS Lambda的选项;
-
使用CloudWatch事件调度AWS Lambda函数
-
使用EventBridge调度AWS Lambda函数
选项1)和选项2)的概述也可以在这个AWS博客上获得,并附带AWS web控制台的屏幕截图。
- 使用AWS Step Functions和Amazon CloudWatch调度无服务器工作流。您还可以像这个示例Task Timer项目中提到的那样添加延迟。