0

我使用与所述的NodeJS无服务器架构(版本4.4)来创建AWS lambda函数。 lambda执行的默认超时时间为6秒。我使用sequelize ORM连接到mysql数据库。我看到这样的错误执行超时。有时我的代码即使出现此错误也能正常工作。但是在超时错误后有时候没有任何工作。在这个超时时间里,我真的很难理解。恐怕增加超时会招致更多费用。AWS LAMBDA超时在6秒

+1

您将只执行一次,而不是配置的时间。增加时间,看看是否有帮助。 – Kannaiyan

+1

您可以尝试增加一段时间,以确定问题是否与lambda或代码相关。增加它,假设一天10秒,观察行为。如果仍有超时,请将其增加至5分钟,然后再观察一次。 – hjpotter92

+0

MySQL连接/查询可能需要时间。在尝试增加超时之前,请先查看一次代码。看看是否有优化。如果没有,你什么都没有,但增加超时。 lambda函数的运行时间必须是确定性的。 –

回答

2

如果你看到像“执行超时”比你可能削减你的Lambda表达式的执行与过低的超时错误。

可能有几个原因:

  • 容器的初始化可能会很慢,这应该只发生于容器的第一个电话。如果您的内存设置较低并且需要装载大量库,则可能会发生相当长的一段时间(通常,这不应该成为节点的问题)
  • 连接到数据库可能会很慢
  • 如果您重复使用数据库连接,它们可能是陈旧的,这可能导致超时。
  • 数据库查询可能会很慢。

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

正如其他人已指出您只需支付实际使用的时间,因此,如果您的LAMBDA完成超过超时更快您只需支付实际消耗的时间(以100毫秒为单位)。