AWS Лямбда-функция: возвращает null при запросе postgresql - PullRequest
0 голосов
/ 16 июня 2020

Я новичок в AWS. Я пытаюсь подключиться к экземпляру AWS RDS postgreSQL и запросить его с помощью функции Lambda. Он возвращает ноль. Ниже мой код.

  var { Pool } = require('pg');
  exports.handler = function (event, context) {
  var dbConfig = {
    username: '<username>',
    password: '<password>',
    database: '<database>',
    host: '<db-endpoint>',
  };
  var pool = new Pool(dbConfig);
  exports.handler = async function (event, context, callback) {
    context.callbackWaitsForEmptyEventLoop = false;
    pool.connect();
    pool.query("select NOW() as now", (err, res)=>{
      console.log(res);
      if (err) return callback(err);
        if (res.rows.length==0){

            return callback(null, null);
        }
        else{
            return callback(null, res.rows[0]);
        }  
    });
 };

1 Ответ

0 голосов
/ 22 июня 2020

Giri,

Ваш AWS Lambda требует соответствующего разрешения для доступа к AWS RDS (PostgreSQL). Вам необходимо создать роль выполнения и подключиться к службе Lambda. https://docs.aws.amazon.com/lambda/latest/dg/services-rds-tutorial.html

Прилагаем несколько изображений, чтобы показать результаты. enter image description here

enter image description here

Once you have successfully done this, You can jump into setting-up the Lambda package with code and driver to connect to AWS RDS PostGreSQL. Below 2 links will guide you through that. https://medium.com/@ly.lee / connected- aws -lambda- node-js -to-redshift-or- postgresql -try- aws -lambda-Layers-78e60c27f39b

https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create-deploy-nodejs.rds.html

...