有没有办法使用 aws-secretsmanager-jdbc 和 node.js 连接到 RDS 实例?我需要连接到数据源并运行一个简单的查询,但不幸的是,唯一支持的连接方式是使用 aws-secretsmanager-jdbc。
https://github.com/aws/aws-secretsmanager-jdbc
我想我可以使用这个 Node 模块来连接: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 来执行此操作?
最佳答案
为什么不使用 node.js 包连接到 postgres ?结账https://www.npmjs.com/package/pg下面的示例代码可帮助您开始使用。
您可以将 aws-sdk 用于 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();
}
关于java - 使用 aws-secretsmanager-jdbc 和 Node.js 连接到 RDS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61342921/