AWS Lambda - 超时

问题描述

我有一个简单的 lambda 函数,它可以异步计算结果。我可以记录结果,它似乎是正确的,但由于某种原因,lambda 函数没有成功返回,就像我超时一样。如果您查看时间戳,您可以看到结果是在超时之前计算出来的。奇怪的是,当我使用 axios 时它工作正常,但是每当我使用动物时它就不再工作了,但它确实记录了正确的结果......我已经解决这个问题好几天了,不知道该怎么办做。我将无服务器框架与此 template 一起使用。

Response
{
  "errorMessage": "2021-03-10T07:11:11.567Z 0180b87e-e01f-4527-8c7e-4c1dd5e3e354 Task timed out after 6.01 seconds"
}

Function Logs
START RequestId: 0180b87e-e01f-4527-8c7e-4c1dd5e3e354 Version: $LATEST
2021-03-10T07:11:05.811Z    0180b87e-e01f-4527-8c7e-4c1dd5e3e354    INFO    Sending response: { statusCode: 200,body: '{"result":100}' }
END RequestId: 0180b87e-e01f-4527-8c7e-4c1dd5e3e354
REPORT RequestId: 0180b87e-e01f-4527-8c7e-4c1dd5e3e354  Duration: 6007.06 ms    Billed Duration: 6000 ms    Memory Size: 256 MB Max Memory Used: 76 MB  Init Duration: 205.66 ms    
2021-03-10T07:11:11.567Z 0180b87e-e01f-4527-8c7e-4c1dd5e3e354 Task timed out after 6.01 seconds

任何帮助将不胜感激!

解决方法

发现问题。在处理程序中,我设置了 context.callbackWaitsForEmptyEventLoop = false。或者,在使用 middy 时,您可以使用此 middleware