有没有一种方法可以使用aws-secretsmanager-jdbc和node.js连接到RDS实例?我需要连接到一个数据源并运行一个简单的查询,但不幸的是,唯一支持的连接方式是使用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来做这件事?
发布于 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
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();
}
https://stackoverflow.com/questions/61342921
复制相似问题