简体   繁体   English

Node JS - 具有 RDS 数据库连接的 AWS Lambda 异步响应

[英]Node JS - AWS Lambda Asynchronous response with RDS Database Connectivity

I am trying to connect to DB and log the response, but the code is throwing ask timed out after x.00 seconds.我正在尝试连接到数据库并记录响应,但代码在 x.00 秒后抛出询问超时。

This code is running in AWS Lambda function.此代码在 AWS Lambda 函数中运行。 i am using node js.我正在使用节点js。 Require help in understanding where i am going wrong.需要帮助来理解我哪里出错了。

'use strict';
 const {Client} = require('pg');
 var clientHandler;
 let response;
 var sqlString = "select * from fleet.instance_aio";
 exports.handler = async(event, context) => {
   await connectToDb();
   await queryDB();
   return response;
   };

async function connectToDb() {
try {
    clientHandler = new Client({
        user: process.env.USER,
        host: process.env.HOST,
        database: process.env.DATABASE,
        password: process.env.PASSWORD,
        port: process.env.PORT
    });
    clientHandler.connect();
    console.log(`DB Connection SuccessFull.`);
    } catch (error) {
    console.error(`DB Connection Failed. Error Details is ${error}`);
    throw new Error("DBConnectionFailed");
   }
   }

async function queryDB() {
   let dbResponse = await clientHandler.query(sqlString);
    console.log("Query executed");
    console.log('The solution is: ', JSON.stringify(dbResponse));
    clientHandler.end();
 }

It happened because the action inside lambda takes more than 3 seconds.发生这种情况是因为 lambda 内部的操作需要超过 3 秒。

The default timeout is 3 seconds so it is needed to change the default timeout of that lambda function.默认超时为 3 秒,因此需要更改该 lambda 函数的默认超时。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM