AWS Lambda函数执行停止

时间:2017-04-10 12:57:47

标签: node.js amazon-web-services aws-lambda

我正在执行具有以下配置的lambda Nodejs function

1)最大内存:512 Mb

2)超时:20秒

单次执行的内存消耗: 100 Mb

执行单个功能需要 100 Mb

我注意到了什么:

多次执行Lambda function时,消耗的内存不断增加,从 100 Mb 增加到 128 Mb 增加到 155 Mb 等等...

当它达到最大内存( 512 Mb )时,执行停止,我收到以下错误:

  

在完成请求之前退出流程

几分钟后试用时,内存会被清理干净并再次从 100 Mb

开始

有没有办法清理Lambda函数中的已用内存?如果没有,还有其他方法可以解决这个问题吗?

修改

我正在使用此lambda函数使用canvas

node-canvas生成图像

1 个答案:

答案 0 :(得分:0)

我相信你可能会有一些静态变量。在Java环境中,AWS-Lambda将静态变量保存在多个lambda执行的内存中。因此,如果您有一个静态映射,并且每次执行lambda都会向其添加变量,那么它将保留在内存中。这也可能是node.js的情况。