Lambda从MySQL RDS获取数据,但超时

我正在使用Lambda连接到RDS与VPC和正常工作。 我可以成功从MySQL获取数据,但Lambda会超时。

CloudWatch日志:

2017-02-15T18:56:18.609Z [RowDataPacket {userInfo:'xxx'}]
END RequestId:xxx REPORT RequestId:xxx持续时间:300001.69 ms计费时间:300000 ms内存大小:512 MB使用的最大内存:22 MB
2017-02-15T19:01:18.306Z xxx任务在300.00秒后超时

Handle.js

db.getPersonInfo("xxx", function (err, result) { console.log(result); const response = { statusCode: 200, body: JSON.stringify({ message: 'test', input: event, }), }; callback(null, response); }); 

DB.js

 var getPersonInfo = function(userId, callback){ pool.getConnection(function(err, connection){ var sql = 'SELECT userInfo FROM user where userId = ?'; connection.query( sql , userFbId , function(err, results) { if(err){ console.log(err); } callback(err, results); connection.release(); }); }); }; 

我终于发现游泳池应该结束。 和Lambda的工作发现。

 var getPersonInfo = function(userId, callback){ pool.getConnection(function(err, connection){ var sql = 'SELECT userInfo FROM user where userId = ?'; connection.query( sql , userId , function(err, results) { if(err){ console.log(err); } callback(err, results); connection.release(); pool.end(function (err) { // all connections in the pool have ended }); }); }); }; 

还有一件事是,每当lambda启动时,mysql的createConnection函数都必须运行。 这是Ref 。