Mysql Nodejs lambda函数超时

Mysql Nodejs lambda函数超时,mysql,node.js,aws-lambda,Mysql,Node.js,Aws Lambda,只是试一下Lambda和nodejs。 我有一个超时错误,每隔几次就发生一次 下面是我的nodejs代码 var mysql = require('mysql'); var pool = mysql.createPool({ connectionLimit: 100, host : 'hostname', user : 'username', password : 'password', database : 'database', port : 330

只是试一下Lambda和nodejs。 我有一个超时错误,每隔几次就发生一次

下面是我的nodejs代码

var mysql = require('mysql');

var pool = mysql.createPool({
  connectionLimit: 100,
  host     : 'hostname',
  user     : 'username',
  password : 'password',
  database : 'database',
  port : 3306
});


exports.handler = async (event, context, callback) => {
    let request = JSON.parse(event.body);
    let sId = request.sid;
    let questionnaireId = request.questionnaireId;

    pool.getConnection((error, connection) => {
        if (error) throw error;
        let sql = "INSERT INTO answers (qId, sId,) VALUES(" + questionnaireId + ", " + sid + ")";
        connection.query(sql, function(err, result){
            if(err) throw err;
            console.log("Successfull Insert")
            connection.release();
        });

    });

    const response = {
        statusCode: 200,
        headers: {
                    'Access-Control-Allow-Origin': '*',
                    'Access-Control-Allow-Credentials': true
                },
        body: JSON.stringify({message : 'success'}),
    };

    return response;
};
Cloudwatch显示以下消息

“errorMessage”:“连接ETIMEDOUT”, “代码”:“ETIMEDOUT”


提前感谢。

尝试从处理程序中删除
回调
参数。您正在从函数返回承诺,因此不需要它

callback
定义为参数可能会使aws认为您将在函数完成执行时调用它,如果您不这样做,则会产生超时错误。

Replace

return response;
为此:

callback(null, response)
参考: