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

Ste*_*fan 5 mongodb google-cloud-platform mongodb-atlas google-cloud-run

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

我的设置是:

  • 在 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 步之后尝试连接时,连接失败。我错过了什么?

Ste*_*fan 11

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

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

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