连接到 AWS DocumentDB 时出现连接错误
Posted
技术标签:
【中文标题】连接到 AWS DocumentDB 时出现连接错误【英文标题】:connection error while connecting to AWS DocumentDB 【发布时间】:2019-06-21 04:46:32 【问题描述】:从 node.js 连接到 AWS DocumentDB 时出现以下错误
连接错误: [MongoNetworkError: connection 1 to docdb-2019-01-28-06-57-37.cluster-cqy6h2ypc0dj.us-east-1.docdb.amazonaws.com:27017 超时]名称:'MongoNetworkError',errorLabels:[ 'TransientTransactionError']
这是我的节点 js 文件
app.js
var mongoose = require('mongoose');
mongoose.connect('mongodb://abhishek:abhishek@docdb-2019-01-28-06-57-37.cluster-cqy6h2ypc0dj.us-east-1.docdb.amazonaws.com:27017/?ssl_ca_certs=rds-combined-ca-bundle.pem&replicaSet=rs0',
useNewUrlParser: true
);
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function()
console.log("connected...");
);
【问题讨论】:
【参考方案1】:默认情况下,aws documentdb 旨在仅从同一 VPC 进行连接。 因此,要从同一 vpc 中的 ec2 连接 nodejs 应用程序。您需要在创建数据库实例时启用 pem 文件,因为默认情况下启用了 SSL。
第 1 步:$ wget https://s3.amazonaws.com/rds-downloads/rds-combined-ca-bundle.pem
在所需目录中
第 2 步:使用指向 pem 文件的选项更改 mongoose 连接
mongoose.connect(database.url,
useNewUrlParser: true,
ssl: true,
sslValidate: false,
sslCA: fs.readFileSync('./rds-combined-ca-bundle.pem'))
.then(() => console.log('Connection to DB successful'))
.catch((err) => console.error(err,'Error'));
这里使用的是 mongoose 5.4.0
要从 VPC 外部连接,请尝试遵循 aws 中的以下文档: https://docs.aws.amazon.com/documentdb/latest/developerguide/connect-from-outside-a-vpc.html
就我个人而言,我只尝试从 VPC 进行连接,并且效果很好。
更新 =====:>
要从 VPC 外部的 Robo 3T 连接,请点击链接 - AWS DocumentDB with Robo 3T (Robomongo)
【讨论】:
如何从 lambda 连接它 你能举一个禁用 tls 的例子吗?以上是关于连接到 AWS DocumentDB 时出现连接错误的主要内容,如果未能解决你的问题,请参考以下文章
111:尝试连接到 AWS EC2 实例上的 Flask 应用程序时出现连接被拒绝错误
通过 SSH 隧道从 Java 程序连接到 AWS DocumentDB
无法从我的ubuntu EC2计算机连接到AWS DocumentDB
无法使用 SSH 隧道将 MongoDB Compass 连接到 AWS DocumentDB