У меня есть следующая лямбда-функция, которую я вызываю через шлюз API:
var mysql = require('mysql');
var connection = mysql.createConnection({
host: '[my_endpoint]',
user: '[my_user]',
password: '[my_password]',
database: '[my_db]',
});
// console.log(connection);
exports.handler = (event, context, callback) => {
connection.query('SELECT [field_name] FROM [table_name] WHERE [field_name] = \"' + event['queryStringParameters']['myParam'] + '\"', function (error, results, fields) {
if (error) {
connection.end();
throw error;
} else {
// connected!
console.log("Success! : " + event['queryStringParameters']['myparam'])
console.log(results);
var response = {
"statusCode": 200,
"headers": {
"my_header": "success"
},
"body": JSON.stringify(results),
"isBase64Encoded": false
};
callback(error, response);
connection.end(function (err) { callback(err, response);});
}
});
};
По какой-то причине я получаю коды состояния 200 и 502 для каждого второго вызова метода GET (т.е. код состояния 200с данными об одном вызове, а затем с кодом 502 на следующий вызов, меняя каждый второй вызов)
Глядя на CloudWatch, я вижу следующую ошибку:
Error: Cannot enqueue Query after invoking quit
Любое пониманиепочему это происходит?И как я могу это исправить?