我有一个AWS lambda函数,它位于node.js中
var pg = require("pg");
exports.handler = (event, context, callback) => {
var client = new pg.Client({
user: "41231qd123",
password: "lkjlkasjdlkasldkjas",
database: "12312312asdasd",
port: 5432,
host: "kdoiedjeifk.compute-1.amazonaws.com",
ssl: true
});
client.connect();
console.log('Connected to PostgreSQL database');
client.query("SELECT products.* from products where location_id =
"+event.location_id+" AND company_id = "+event.company_id+" order
by products.name ASC;", (err, res) => {
if (err) {
callback(err);
}
var jsonString = JSON.stringify(res.rows);
var jsonObj = JSON.parse(jsonString);
console.log(jsonString);
client.end();
context.succeed(jsonObj);
});
};
当我在aws lambda“Test”中测试这个函数时,它运行得很好,但是在我添加了api-gateway并测试它之后我得到了这条消息'在完成请求之前退出流程',是否有任何特定的原因与代码还是配置?
1 回答
首先,检查日志中是否存在lambda错误 .
If there is no lambda crash
如果该功能花费的时间超过29秒,那么API网关集成可能会超时 . 检查lambda日志以查看是否存在崩溃,如果没有则检查所花费的时间 .
If there is a lambda crash
您的lambda登录 Cloud 计算将提供更好的理由 . “在完成请求之前退出的进程”通常是限制错误的样板AWS Lambda错误 . 您可能:
lambda VM中内存不足
lambda VM中的磁盘空间不足
超时 .
检查日志的REPORT行,它们应如下所示:
REPORT RequestId: asdf-wertvgh-12345-fdghdfgh Duration: 12345.13 ms Billed Duration: 12400 ms Memory Size: 128 MB Max Memory Used: 64 MB
如果这不是错误,您的日志应该会让您知道发生了什么 . 发布追溯可能会有所帮助 .