我在AWS Lambda中有一个函数使用运行时Node.js 6.10
。 Lambda运行我的代码很好,但继续"执行"即使代码已经完成。我想要发生的是Lambda在代码完成时停止。我在下面有我的日志,看看是否有人可以看到问题所在。注意我的回调结束函数返回success
{
"errorMessage": "2017-12-07T17:50:55.618Z e4a5bb77-db76-11e7-b2e6-514284a81613 Task timed out after 120.09 seconds"
}
START RequestId: e4a5bb77-db76-11e7-b2e6-514284a81613 Version: $LATEST
2017-12-07T17:48:55.527Z e4a5bb77-db76-11e7-b2e6-514284a81613 -L-llvVALjYpyUV0M6EG //gotten from code
2017-12-07T17:48:58.652Z e4a5bb77-db76-11e7-b2e6-514284a81613 http://www.loopnewsbarbados.com/content/bitcoin-worth-millions-stolen-days-us-exchange-opens-1 //gotten from code
2017-12-07T17:49:01.150Z e4a5bb77-db76-11e7-b2e6-514284a81613 crisis, //gotten from code
2017-12-07T17:49:01.232Z e4a5bb77-db76-11e7-b2e6-514284a81613 success //successful callback
END RequestId: e4a5bb77-db76-11e7-b2e6-514284a81613
REPORT RequestId: e4a5bb77-db76-11e7-b2e6-514284a81613 Duration: 120093.31 ms Billed Duration: 120000 ms Memory Size: 128 MB Max Memory Used: 34 MB
2017-12-07T17:50:55.618Z e4a5bb77-db76-11e7-b2e6-514284a81613 Task timed out after 120.09 seconds
答案 0 :(得分:5)
您需要在context.succeed或context.fail之后的函数中返回,以防止进一步执行。
如果在处理程序中使用回调(null,result)/(err)而不是context.succeed()/ fail(),则需要将callbackWaitsForEmptyEventLoop设置为false。
请参阅https://gist.github.com/hassy/eaea5a958067211f2fed02ead13c2678
答案 1 :(得分:0)
刚刚放
process.exit(0)
终止执行。