簡體   English   中英

AWS Lambda + Api Gateway問題

[英]Aws lambda + Api Gateway issue

我有一個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“測試”中測試此功能時,它工作正常,但是在我添加了api網關並對其進行測試之后,我得到了此消息“在完成請求之前退出了流程”,代碼是否存在任何特定原因或配置?

該圖顯示了我通過api-gateway測試時的響應

在此處輸入圖片說明

在此處輸入圖片說明

首先,檢查您的日志中是否存在lambda錯誤。

如果沒有lambda崩潰

如果該功能花費的時間超過29秒,則API網關集成可能會超時。 檢查lambda日志以查看是否存在崩潰,如果不崩潰,則檢查花費的時間。

如果發生lambda崩潰

您的lambda登錄到cloudwatch會提供一個更好的原因。 “完成請求之前退出流程”通常是限制錯誤的樣板AWS Lambda錯誤。 您可能會:

  1. 在Lambda VM中耗盡內存
  2. 用完Lambda VM中的磁盤空間
  3. 時間到。

檢查日志的REPORT行,它們應如下所示:

REPORT RequestId: asdf-wertvgh-12345-fdghdfgh Duration: 12345.13 ms Billed Duration: 12400 ms Memory Size: 128 MB Max Memory Used: 64 MB

如果那不是錯誤,那么您的日志應該使您對發生的事情有所了解。 發布回溯可能會有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM