【发布时间】:2018-06-05 19:21:06
【问题描述】:
我正在处理的项目的当前设置基于 Nodejs/Express 和 AWS。 AWS Lambda 每天都会触发,并用于调用 API 端点,该端点预计会通过 Sendgrid 触发不同数量的电子邮件(数百到数千)。电子邮件数量较少时,它运行良好,但当电子邮件数量约为 1000 时,Lambda 超时并且 API 崩溃。
Lambda 的限制是 1 分钟。将它提高到 5 分钟可能会使 1000 封电子邮件的情况通过,但当数量达到数千封时可能会失败。除此之外,我们希望避免让服务器忙碌几分钟,因为它最初设置为 1 分钟。
我们现在正在寻找针对这种特定情况的更好解决方案。什么是更好的方法,是使用 SNS 队列还是无服务器将所有发送电子邮件的代码移动到 Lambda 的选项?
提前感谢您的任何意见,如果需要更多信息,请告诉我。
【问题讨论】:
-
是 lambda 的最大超时时间为 5 分钟,是否超过 5 分钟?
-
如果您需要的执行时间超过当前的最大值,即 5 分钟,您可以使用 lambda 来触发发送电子邮件的 aws fargate 容器。 Aws Fargate 使用您提供的 docker 容器来执行此操作
-
您能否详细介绍一下您当前的解决方案?电子邮件地址存储在哪里? API 端点是 Sendgrids 吗?如果是这样,它是速率限制吗? Lambda 是进行 1 次 API 调用还是 1000 次?
-
@GowthamChand 最初将限制设置为 60 秒,目的是降低服务器繁忙的时间。将它提高到 5 分钟可能适用于这种“1000 封电子邮件”的情况,但可能会在数千封电子邮件被解雇时达到限制。除此之外,我们希望避免让它忙碌 2-3 分钟。我也用这些信息更新了问题。
标签: node.js amazon-web-services express aws-lambda