即使客户端连接成功,NodeJs Postgres + AWS Lambda 超时
NodeJs Postgres + AWS Lambda timeout even after successful client connect
Lambda 函数:
const client = new Client({
user: 'postgres',
host: 'rds_host',
database: 'dbname',
password: 'db_password',
port: 5432
});
exports.handler = async (event, context, callback) => {
try {
await client.connect();
callback(null, "Connected Successfully");
} catch (e) {
callback(null, "Error");
}
};
使用这段代码,我的 lambda 总是会出现超时错误,如果我去掉 cliente.connect()
行,它就可以正常工作。
有趣的部分是,如果我添加一个 client.query
和 INSERT
,该命令确实有效并且该行是在数据库中创建的,那么为什么我在 client.connect()
已添加并且连接有效?
我很确定当你的处理函数是 async
时,它期待一个承诺被解决,所以,我不会使用回调,而是 return "Connected Successfully";
此处有一个示例 link,其中有一个没有回调的异步处理程序。
Lambda 函数:
const client = new Client({
user: 'postgres',
host: 'rds_host',
database: 'dbname',
password: 'db_password',
port: 5432
});
exports.handler = async (event, context, callback) => {
try {
await client.connect();
callback(null, "Connected Successfully");
} catch (e) {
callback(null, "Error");
}
};
使用这段代码,我的 lambda 总是会出现超时错误,如果我去掉 cliente.connect()
行,它就可以正常工作。
有趣的部分是,如果我添加一个 client.query
和 INSERT
,该命令确实有效并且该行是在数据库中创建的,那么为什么我在 client.connect()
已添加并且连接有效?
我很确定当你的处理函数是 async
时,它期待一个承诺被解决,所以,我不会使用回调,而是 return "Connected Successfully";
此处有一个示例 link,其中有一个没有回调的异步处理程序。