我通过API网关触发一个lambda函数,一切都很好地完成了一个例外,即我第一次在某一天触发它失败了 .
奇怪的是,lambda函数日志不会显示任何错误 . 我得到了我常用的 START
日志语句,然后是触发器的请求和上下文,然后在5s后,它意外结束 .
当我查看API网关日志时,这是它返回的错误:
由于客户功能错误,Lambda执行失败,状态为200:2018-12-10T11:00:31.208Z cc233168-fc9n-11fc-a05a-577bb4sd2b2ccc任务在5.01秒后超时 .
有谁遇到过类似的问题?什么是客户功能错误,我该如何解决?
1 回答
在不知道你正在使用的背景代码的情况下,我将其称为冷启动 . 对于第一个请求很长时间没有调用函数的请求会发生冷启动 . 如果您发现错误消息显示“5.01秒后超时 . 这是默认设置 . 您可以增加超时时间 .
或者,您可以考虑通过减少冷启动的长度来减少冷启动的影响reference:
通过使用不会产生高冷启动时间的语言编写Lambda函数 - 即Node.js,Python或Go
为处理用户请求的关键路径上的函数选择更高的内存设置(即用户必须等待响应的任何内容,包括中间API)
优化函数的依赖关系和包大小
您还可以通过在每个特定时间间隔之后通过Cloud Watch放置一个cron作业来通过PING调用您的API