AWS Lambda在6秒内超时

时间:2017-09-12 05:51:40

标签: amazon-web-services aws-lambda nodes sequelize.js serverless-framework

我正在使用带有nodejs(版本4.4)的无服务器框架来创建AWS lambda函数。 lambda执行的默认超时为6秒。我使用sequelize ORM连接到mysql数据库。我看到执行超时等错误。有时我的代码即使出现此错误也能正常工作。但有时在此超时错误后无效。这个超时对我来说真的很难理解。我担心增加超时会产生更多费用。

1 个答案:

答案 0 :(得分:2)

如果您发现“执行超时”等错误,请执行此操作。而且你可能会因为超时太短而削减你的Lambdas的执行。

可能有以下几个原因:

  • 容器的初始化可能很慢,这只应在第一次调用容器时发生。如果你的内存设置很低并且加载了很多库,那么可能会花费很长时间(通常这不应该是节点的问题)
  • 连接到数据库可能很慢
  • 如果您重复使用数据库连接,它们可能过时,这可能会导致超时。
  • 您的数据库查询可能很慢。

要缓解此问题,您应该暂时向Lambda添加一些日志记录并增加超时,以便您可以弄清楚实际需要的时间。除非你已经是一个沉重的Lambda用户,否则你不可能每月耗尽400.000 free GB-seconds。如果运行128 MB的Lambdas,则相当于每月3.200.000秒/每天103.225秒/每天28.5小时。尝试使用更高的内存设置进行测试,根据具体情况,这甚至可以减少消耗的GB / s总量。

正如其他人所指出的那样,你只需支付实际使用的时间,所以如果你的Lambda完成的速度超过超时,你只需支付实际消耗的时间(以100毫秒为增量)。