Подключение к RDS с помощью aws -secretsmanager-jdb c с Node.js? - PullRequest
0 голосов
/ 21 апреля 2020

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

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);
  }
});

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

1 Ответ

0 голосов
/ 22 апреля 2020

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

Вы можете использовать aws -sdk для администратора секретов https://www.npmjs.com/package/aws-sdk и использовать его для получения пароль и другие детали для заполнения БД const ниже. Вот пример того, как это получить. 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();
}
...