首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用aws-secretsmanager-jdbc和Node.js连接到RDS?

使用aws-secretsmanager-jdbc和Node.js连接到RDS?
EN

Stack Overflow用户
提问于 2020-04-21 19:53:41
回答 1查看 883关注 0票数 0

有没有一种方法可以使用aws-secretsmanager-jdbc和node.js连接到RDS实例?我需要连接到一个数据源并运行一个简单的查询,但不幸的是,唯一支持的连接方式是使用aws-secretsmanager-jdbc。

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

我想我可以使用这个节点模块来连接:https://www.npmjs.com/package/jdbc,如下所示:

代码语言:javascript
运行
复制
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来做这件事?

EN

Stack Overflow用户

发布于 2020-04-23 04:39:25

为什么不使用node.js包来连接postgres呢?请查看下面的https://www.npmjs.com/package/pg和示例代码,以帮助您开始使用。

您可以使用aws-sdk for secretsmanager https://www.npmjs.com/package/aws-sdk,并使用它来获取密码和其他详细信息,以填充下面的数据库常量。这里有一个如何实现这一点的示例。https://gist.github.com/rxgx/7e1b24de5936ff1b2b815a3d9cc3897a

代码语言:javascript
运行
复制
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();
}
票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61342921

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档