使用Nodejs和AWS处理耗时的操作

时间:2018-06-05 08:49:03

标签: node.js amazon-web-services express aws-lambda

我正在开发的项目的当前设置基于Nodejs / Express和AWS。 AWS Lambda每天触发,用于调用API端点,该端点预计会通过Sendgrid触发不同数量的电子邮件(数百到数千)。电子邮件数量较少,但工作正常,但当电子邮件数量大约为1000时,Lambda超时,API崩溃。

Lambda的限制为1分钟。将其提升至5分钟可能会使这1000封电子邮件通过,但当数量为数千时可能会失败。除此之外,我们希望避免让服务器忙碌几分钟,因为它最初设置为1分钟。

我们正在寻找针对这种特定情况的更好解决方案。什么是更好的方法,是使用SNS队列的选项,还是无服务器将所有发送电子邮件的代码移动到Lambda?

感谢提前输入,如果需要更多信息,请告知我们。

1 个答案:

答案 0 :(得分:1)

Lambda不适用于长时间运行的操作。您可以使用Elastic Beanstalk Workers https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features-managing-env-tiers.html

简单地说,lambda将任务发布到SQS队列,弹性beanstalk应用程序处理它。