【问题标题】:How to connect to Amazon DocumentDB from Node.js如何从 Node.js 连接到 Amazon DocumentDB
【发布时间】:2019-09-14 18:48:12
【问题描述】:

如何从 node.js 连接到 Amazon 的新 DocumentBD 数据库(在这种情况下,使用开箱即用的 Elastic Beanstalk 设置。)

这是我的代码,从文档中复制而来(为了隐私而更改了一些值)。它只是超时,“err”的最终值为“true”。我错过了什么?我怎样才能得到更好的错误?

var MongoClient = require('mongodb').MongoClient,fs = require('fs');
var ca = [fs.readFileSync("rds-combined-ca-bundle.pem")];
var connection_string = "mongodb://USERNAME:PASSWORD@docdb-2019-04-23-12-55-44.cluster-abcdefghij.eu-west-1.docdb.amazonaws.com:27017/?ssl=true&&replicaSet=rs0&readPreference=secondaryPreferred";

MongoClient.connect(
        connection_string, {
            sslValidate: true,
            sslCA: ca,
            useNewUrlParser: true
        },
        function (err,client) {
            console.log(err+" , "+ client);
        });

希望有人知道。

【问题讨论】:

  • 您是否为 DocumentDB 数据库设置了安全组以允许从运行此代码的任何位置进行连接?
  • 很好的问题。嗯...让我去看看我能不能弄清楚怎么做。
  • 成功了。如果您想将其添加为答案,那么我会打勾。

标签: node.js amazon-web-services amazon-elastic-beanstalk aws-documentdb-mongoapi aws-documentdb


【解决方案1】:

超时通常表明安全组配置不正确。检查您的 DocumentDB 入站安全组配置,以确保允许来自源的流量进入您的 DocumentDB 实例。

【讨论】:

  • 好答案。更多故障排除场景,另请参见:docs.aws.amazon.com/documentdb/latest/developerguide/…
  • 另外,这里有一个关于如何开始的快速视频:youtube.com/watch?v=qk98rR08szU
  • 您好,谢谢您的回答。作为一个网络菜鸟,您能否 ELI5 我特别需要添加什么规则以允许我的本地 NodeJS 应用程序连接到 DynamoDB?目前,我有入站规则 - 'All TCP'
  • 还需要知道DocumentDB默认在VPC中。您无法将本地运行的应用程序连接到数据库。您需要创建一个 EC2 实例,将 SSL 放入该实例,然后安装 mongo shell。然后,您可以使用 CLI 与您的数据库通信。
【解决方案2】:

从 URL 中删除 cluster- 似乎对我有用。

【讨论】:

    【解决方案3】:

    hephalump@ 的好建议。想向您指出确切的文档。您可以参考this documentation 的第 7.d 点,其中讨论了为安全组设置规则。

    【讨论】:

      猜你喜欢
      • 2019-08-28
      • 1970-01-01
      • 1970-01-01
      • 2021-08-23
      • 1970-01-01
      • 2021-05-10
      • 2012-04-06
      • 2021-02-14
      • 2019-11-08
      相关资源
      最近更新 更多