首页 > 解决方案 > 尝试从本地 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。这意味着它根本无法连接到数据库。

标签: node.jsmongodbamazon-web-servicesmongooseaws-documentdb

解决方案


出于安全原因,除了通过 ssh 隧道外,无法从外部打开对文档数据库集群的访问。请参阅AWS 文档


推荐阅读