错误消息 = 进程在完成请求之前退出。错误 = 池已关闭
Error message = Process exited before completing request. Error = Pool is closed
我有 Lambda 函数、Aurora 数据库、DynamoDb。我正在 从 aurora db 获取数据,并且我收到一些读取请求的 错误和一些读取请求的输出 .这是示例代码,我已经 连接到 Reader 端点
var AWS = require("aws-sdk");
var mysql = require('mysql');
const client = new AWS.DynamoDB.DocumentClient({region : 'eu-west-1'});
var connection = mysql.createPool({
host : "*******************",
user : "*****",
password : "******",
database : "mydb",
port : "3306"
});
exports.handler = (event, context, callback) => {
//var id = parseInt(event.id);
connection.query("select * from demo where id=3;", function (error, results, fields) {
if (error) {
if (error) throw error;
} else {
connection.end();
}
}
);
};
错误:
Response:
{
"errorMessage": "RequestId: 0c2d1a39-58d9-11e8-bef9-dbe1bfb0a080 Process exited before completing request"
}
Request ID:
"0c2d1a39-58d9-11e8-bef9-dbe1bfb0a080"
Function Logs:
START RequestId: 0c2d1a39-58d9-11e8-bef9-dbe1bfb0a080 Version: $LATEST
2018-05-16T07:16:27.041Z 0c2d1a39-58d9-11e8-bef9-dbe1bfb0a080 Error: Pool is closed.
在一些读取请求中,我得到了想要的输出,但在一些读取请求中,我得到了上述错误。有人知道解决方案吗?请帮忙....
能否将以下部分移至函数处理程序的内部?此修改让 Lambda 函数每次都初始化连接对象,而不是重复使用它。
var connection = mysql.createPool({
host : "*******************",
user : "*****",
password : "******",
database : "mydb",
port : "3306"
});
根据 documentation ,关闭连接是使用 end() 完成的,它确保在向 mysql 服务器发送退出数据包之前执行所有剩余的查询。当您在 Lambda 函数中执行连接对象的 end() 函数时,我相信您也需要在 Lambda 函数的开头初始化连接对象。
我有 Lambda 函数、Aurora 数据库、DynamoDb。我正在 从 aurora db 获取数据,并且我收到一些读取请求的 错误和一些读取请求的输出 .这是示例代码,我已经 连接到 Reader 端点
var AWS = require("aws-sdk");
var mysql = require('mysql');
const client = new AWS.DynamoDB.DocumentClient({region : 'eu-west-1'});
var connection = mysql.createPool({
host : "*******************",
user : "*****",
password : "******",
database : "mydb",
port : "3306"
});
exports.handler = (event, context, callback) => {
//var id = parseInt(event.id);
connection.query("select * from demo where id=3;", function (error, results, fields) {
if (error) {
if (error) throw error;
} else {
connection.end();
}
}
);
};
错误:
Response:
{
"errorMessage": "RequestId: 0c2d1a39-58d9-11e8-bef9-dbe1bfb0a080 Process exited before completing request"
}
Request ID:
"0c2d1a39-58d9-11e8-bef9-dbe1bfb0a080"
Function Logs:
START RequestId: 0c2d1a39-58d9-11e8-bef9-dbe1bfb0a080 Version: $LATEST
2018-05-16T07:16:27.041Z 0c2d1a39-58d9-11e8-bef9-dbe1bfb0a080 Error: Pool is closed.
在一些读取请求中,我得到了想要的输出,但在一些读取请求中,我得到了上述错误。有人知道解决方案吗?请帮忙....
能否将以下部分移至函数处理程序的内部?此修改让 Lambda 函数每次都初始化连接对象,而不是重复使用它。
var connection = mysql.createPool({
host : "*******************",
user : "*****",
password : "******",
database : "mydb",
port : "3306"
});
根据 documentation ,关闭连接是使用 end() 完成的,它确保在向 mysql 服务器发送退出数据包之前执行所有剩余的查询。当您在 Lambda 函数中执行连接对象的 end() 函数时,我相信您也需要在 Lambda 函数的开头初始化连接对象。