使用VPC和对等网络时,如何从Google Cloud Run连接到MongoDB Atlas?

问题描述

我正在尝试使用VPC和对等网络从Google Cloud Run连接到MongoDB,但似乎无法建立连接。目标是能够仅允许特定IP范围从Cloud Run连接到Atlas。

我的设置是:

  • 在Google Cloud上运行的MongoDB Atlas。
  • 在与MongoDB地图集相同的区域中运行NodeJS服务器的Google Cloud Run容器(尽管据我所知这无关紧要)。

我已采取以下步骤:

  1. 按照https://cloud.google.com/vpc/docs/using-vpc中的说明在Google Cloud一侧创建VPC。

  2. 在我的VPC和MongoDB Atlas VPC之间建立网络对等互连:https://docs.atlas.mongodb.com/security-vpc-peering/

  3. 使用连接器设置无服务器VPC访问:https://cloud.google.com/vpc/docs/configure-serverless-vpc-access

  4. 使用上述连接器重新部署云运行容器:https://cloud.google.com/run/docs/configuring/connecting-vpc

  5. 将第3步中的CIDR范围添加到MongoDB地图集的白名单中,并删除了以前的开放范围0.0.0.0/0。

所有步骤都成功(绿色圆点等),但是当我在步骤5之后尝试连接时,连接失败。我想念什么?

解决方法

解决了这个问题,所以回答我自己的问题。事实证明问题中概述的方法确实有效。我错过了两件事:

  1. 您需要将MongoDB连接字符串更改为私有连接字符串。您可以通过单击MongoDB仪表板中“集群”下的“连接”来检索它。据我所知,MongoDB对等网络指南中的任何地方都没有记录。

  2. 在MongoDB Atlas网络设置中将来自VPC本身的CIDR范围(步骤1)和来自无服务器连接器的CIDR范围(步骤3)列入白名单。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...