AWS Lambda函数NodeJs for postgreSQL - 超时错误。

问题描述 投票:1回答:1

我是AWS的新手。我试图使用Lambda函数连接到AWS RDS postgreSQL实例。我按照以下步骤进行了操作 aws文档. 但它使用python的Lambda函数。以下是我的代码。

'use strict';
var pg = require('pg');
exports.handler = function (event, context) {
    var dbConfig = {
        username: '<username>',
        password: '<password>',
        database: '<database>',
        host: '<db-endpoint>',
    };
    var client = new pg.Client(dbConfig);
    try {
        client.connect();
        context.callbackWaitsForEmptyEventLoop = false;
        client.end();
    }
    catch (err) {
        console.log(err);
        client.end();
    }
};

我得到的超时错误如下

START RequestId: 368e619e-ed9d-4241-93a5-764ee01aa847 Version: $LATEST
2020-06-15T16:28:18.911Z    368e619e-ed9d-4241-93a5-764ee01aa847    INFO    connected
END RequestId: 368e619e-ed9d-4241-93a5-764ee01aa847
REPORT RequestId: 368e619e-ed9d-4241-93a5-764ee01aa847  Duration: 20020.16 ms   Billed Duration: 20000 ms   Memory Size: 128 MB Max Memory Used: 70 MB  Init Duration: 150.01 ms    
2020-06-15T16:28:38.901Z 368e619e-ed9d-4241-93a5-764ee01aa847 Task timed out after 20.02 seconds

请告知错误的原因。

我有几个其他问题,以确保我的代码是正确的。

  • 我给了db-endpoint实例的url,是这样吗? 或者如果不是,我应该在那里使用什么?

  • 有没有任何适当的文档,像我这样的初学者,关于Lambda函数与nodejs连接RDS上的postgres?

node.js postgresql aws-lambda amazon-rds
1个回答
0
投票

你没有从Lambda函数中返回任何东西。所以请求一直挂着没有响应,直到超时。

使用第三个参数 callback 提供给处理程序,以响应或返回一个 Promise.

'use strict';
var pg = require('pg');
exports.handler = function (event, context,callback) {
    var dbConfig = {
        username: '<username>',
        password: '<password>',
        database: '<database>',
        host: '<db-endpoint>',
    };
    var client = new pg.Client(dbConfig);
    try {
        client.connect();
        context.callbackWaitsForEmptyEventLoop = false;
        client.end();

        //send the response
        callback(null,"Some Response")
    }
    catch (err) {
        console.log(err);
        client.end();
        callback(err)
    }
};

AWS示例 : AWS Lambda NodeJS连接到RDS Postgres数据库。

你可以在这里阅读所有方法和属性的官方js文档。https:/docs.aws.amazon.comAWSJavaScriptSDKlatestAWSRDS.html。

希望能帮到你!

© www.soinside.com 2019 - 2024. All rights reserved.