我正在AWS Lambda上进行POC。 Lambda表现出意外的行为。
Lambda代码如下
var DB = require('../util/DB')
let response;
exports.lambda_handler = async (event, context, callback) => {
console.log("Starting");
try {
var connection = await DB.dbConnection();
connection.release();
response = {
'statusCode': 200,
'body': JSON.stringify({
message: 'hello world'
})
}
console.log(response)
callback(null, response)
}
catch (error) {
console.log(error)
callback(error, null)
}
console.log("Sending Response")
callback(null, response)
};
DB.js是
var mysql = require('mysql');
let pool = mysql.createPool({
connectionLimit: 10,
host: host,
user: user,
password: password,
port: "3306",
database: database,
multipleStatements: true
});
pool.on('enqueue', function () {
console.error('runQry-Waiting for available connection callback');
});
function getConnection() {
return new Promise((resolve, reject)=> {
pool.getConnection(function(err, connection) {
if(err) {
console.log("\n\nerror")
reject(err)
} else {
console.log("\n\nresolve")
resolve(connection)
}
});
})
}
当我执行lambda时,它将在控制台中打印出“正在启动”,“解决”,响应和“发送响应”,然后等待直到超时。
我尝试注释掉“ var connection ..”和“ conection ..”。工作正常。
答案 0 :(得分:0)
您似乎在这里犯了一些小错误:-
快乐编码:)
编辑:-使用它作为超时相关问题的参考https://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-context.html