我有一个使用python和lightFM的AWS Lambda函数来获取产品推荐。其结构如下:
问题在于,当它从LightFM类调用方法“预测”时,它会在AWS CloudWatch上退出并出现以下错误,并且没有堆栈跟踪:
REPORT RequestId: 31be3ec0-b04a-11e8-9805-e5d84a21cf93 Duration: 180.45 ms Billed Duration: 200 ms Memory Size: 1024 MB Max Memory Used: 162 MB
RequestId: 31be3ec0-b04a-11e8-9805-e5d84a21cf93 Process exited before completing request
更糟糕的是,有时Lambda函数可以完美运行。
通过以异步方式连续向Lambda函数连续发送许多请求(如果所有调用都是同步的,则没有错误),可以一次强制执行此错误。
第一次出现错误后,它将停止工作,直到我再次上载Lambda函数并对Lambda函数的内存配置进行一些更改。
有人知道cython和泡菜是否有问题,或者类似的问题?任何帮助表示赞赏。预先谢谢你。
答案 0 :(得分:0)
行,
在完成请求之前退出流程
表示lambda引擎没有循环处理的事件。 您的代码没有进行回调,或者在回调链中缺少某个地方的回调。
在这种情况下,如果您使用lightFM程序包并等待该程序包中的回调,则它将永远不会被调用,并且在事件链中什么也没处理。
通常将其修复为使用promise并等待一定时间并处理超时并调用context.done或callback来完成此功能的方法。
希望有帮助。
答案 1 :(得分:0)
在lambda实际终止之前,我找不到终止它的原因,但是我找到了一种解决方法。我使用模型中的用户和项目表示法创建了自己的“预测”方法。