2
votes

I am building a lambda api connecting to AWS Aurora Serverless Postgres.

My lambda code (built in Serverless framework) is simple:

async function query_db(_sql) {
    const data = require('data-api-client')({
      secretArn: constants.DBSecretsStoreArn,
      resourceArn: constants.DBAuroraClusterArn,
      database: constants.DatabaseName
    });

    try {
      let result = await data.query(_sql);
      return result.records;
    } catch (error) {
      console.log('Lambda :: query_db :: Error: ' + error);
      return error;
    }
  }

  async function run() {

    let sql = 'SELECT * FROM products LIMIT 10';
    let result = await query_db(sql);
    console.log('result: '+ JSON.stringify(result));

    return callback(null, {
        headers: {
          'Access-Control-Allow-Origin': '*'
        },
        statusCode: 200,
        body: JSON.stringify({msg: 'done})
      });  
  }

Result:

  • It ran successfully in local (serverless-offline)
  • After deploying, it ran timeout, returned 502, error: "Internal server error"

Any suggestion is appreciated.

1

1 Answers

0
votes

The data-api-client doesn't officially support Postgres, yet.

https://github.com/jeremydaly/data-api-client/issues/27