无法从我的本地 node.js 服务器连接 aws documentdb

问题描述

当前状态:

我已经创建了一个 documentdb 集群。 为安全组添加一个入站规则,以允许来自任何地方的所有流量。 为集群禁用 TLS

尝试在此之后连接到数据库 https://docs.aws.amazon.com/documentdb/latest/developerguide/connect_programmatically.html

但抛出以下错误

(node:45892) UnhandledPromiseRejectionWarning: MongoNetworkError: Failed to connect to server [aacb-c1.cluster-c3ggyumy9pd2.us-east-2.docdb.amazonaws.com:27017] on first connect [MongoNetworkTimeoutError: connection timed out

解决方法

当你说从你的“本地 node.js 服务器”连接时,你的意思是在你自己的电脑上运行的东西吗?如果是这样,我相信即使您向入站安全组添加了规则也不会起作用,因为 DocumentDB 在其自己的 VPC 中运行。

这里有一个指南(您基本上还需要在 AWS 中运行 node.js 服务器):https://docs.aws.amazon.com/documentdb/latest/developerguide/connect-from-outside-a-vpc.html

,

Amazon DocumentDB 仅限 Virtual Private Cloud (VPC),目前不支持公共终端节点。因此,如果您尝试从机器本地运行的 Node 服务器进行连接,它将无法公开访问 Amazon DocumentDB。

https://docs.aws.amazon.com/documentdb/latest/developerguide/troubleshooting.connecting.html#troubleshooting.cannot-connect.public-endpoints

替代选项: