Подключение к RDS с помощью aws-secretsmanager-jdbc с Node.js?

Есть ли способ подключиться к экземпляру RDS с помощью aws-secretsmanager-jdbc с node.js? Мне нужно подключиться к источнику данных и выполнить простой запрос, но, к сожалению, единственный поддерживаемый способ подключения — использование aws-secretsmanager-jdbc.

https://github.com/aws/aws-secretsmanager-jdbc

Я подумал, что могу использовать этот модуль узла для подключения: https://www.npmjs.com/package/jdbc, например:

var JDBC = require('jdbc');
var jinst = require('jdbc/lib/jinst');

if (!jinst.isJvmCreated()) {
  jinst.addOption("-Xrs");
  jinst.setupClasspath(['./drivers/hsqldb.jar',
                        './drivers/derby.jar',
                        './drivers/derbyclient.jar',
                        './drivers/derbytools.jar']);
}

var config = {
  url: 'jdbc-secretsmanager:postgresql://therdshost:1234/mydbname',

  // Not sure what to use for drivername here
  drivername: '',
  minpoolsize: 10,
  maxpoolsize: 100,

  user: 'myusername',
  password: '',
  properties: {}
};


var hsqldb = new JDBC(config);

hsqldb.initialize(function(err) {
  if (err) {
    console.log(err);
  }
});

Глядя на jdbc-secretsmanager, кажется, что это отдельная библиотека Java. Можно ли сделать это в node.js или я должен использовать для этого Java?


person Community    schedule 21.04.2020    source источник


Ответы (1)


Почему бы вам не использовать пакет node.js для подключения к postgres? checkout https://www.npmjs.com/package/pg и пример кода ниже, чтобы получить вы начали с.

Вы можете использовать aws-sdk для менеджера секретов https://www.npmjs.com/package/aws-sdk и используйте его, чтобы получить пароль и другие данные для заполнения константы базы данных ниже. Вот пример того, как это получить. https://gist.github.com/rxgx/7e1b24de5936ff1b2b815a3d9cc3897a

const { Pool, Client } = require('pg');

const db = {
    user: "postgres-user",
    host: "postgres-instance",
    database: "postgres-database",
    password: "postgres-password",
    port: 5432, // default port for RDS postgres 
};

console.log('Starting connection...')

const pool = new Pool(db);
pool.query("SELECT NOW()"), (err, res) => {
   if (err) {
       console.log('pool error', err)
   } 
   console.log('pool => ', p)
   pool.end();
}

const client = new Client(db);
client.connect();
client.query("SELECT NOW()"), (err, res) => { 
   if (err) {
       console.log('client error', err)
   }
   console.log('client => ', res)
   client.end();
}
person sidhartha madipalli    schedule 22.04.2020