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

How do you connect to MongoDB Atlas from Google Cloud Run when using VPC and peer networking?

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

我的设置是:

我已采取以下步骤:

  1. 按照 https://cloud.google.com/vpc/docs/using-vpc.

    的说明在 Google 云端创建一个 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 atlas 中的白名单,并删除了之前的开放范围 0.0.0.0/0。

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

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

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

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