node.js - 尝试从本地 NodeJS 应用程序连接到 AWS DocumentDB 时超时
问题描述
我正在尝试从我的本地 NodeJS 应用程序连接到 DynamoDB。我的配置如下:
connect-database.js
const mongoose = require('mongoose')
const fs = require('fs')
const path = require("path")
const connectDatabase = (mongoDbUrl) => {
mongoose.connect(mongoDbUrl, {
useNewUrlParser: true,
useUnifiedTopology: true,
ssl: true,
sslValidate: false,
sslCA: fs.readFileSync(path.resolve(__dirname, '../../config/rds-combined-ca-bundle.pem'))
})
}
index.js
connectDatabase('mongodb://<username>:<password>@<connection-string>/?ssl=true&ssl_ca_certs=rds-combined-ca-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false')
我觉得它与安全组入站规则有关,所以我添加了它以允许从我的安全组上的所有协议和所有端口入站,但它仍然无法正常工作。更令人困惑的是,我可以从我的 AWS Cloud9 实例连接到它。
我得到的错误是MongooseServerSelectionError: getaddrinfo ENOTFOUND。这意味着它根本无法连接到数据库。
解决方案
出于安全原因,除了通过 ssh 隧道外,无法从外部打开对文档数据库集群的访问。请参阅AWS 文档。
推荐阅读
- c# - C# 将 XML 解析为列表返回空列表
- java - SDK类的使用
- r - 如果一个数据集中的日期在另一个数据集中的一段时间内,对于 R 中的每个 id,如何获取该值?
- javascript - 选择下拉剪切文本
- ms-access - MS Access 错误 3188:无法更新;当前被这台机器上的另一个会话锁定
- .net - 从 AWS PowerShell 工具中使用 UpdateCrawler 时出现错误 Update Crawler
- python-3.x - 使用日期时间对象输出最后一行数据框?
- python - “得到未来
在一段时间内使用 websocket.send(msg) 时附加到不同的循环“错误 - python - 哪个对 pandas 更惯用:扩展一组列表并从这些列表创建一个数据框,还是创建一个数据框并附加行?
- python - PyMongo insert_one 异常/错误处理