无法从GCP应用程序引擎连接到Mongo Atlas



我正试图将运行在GCP应用程序引擎上的nodejs应用程序连接到Mongo Atlas,但我收到了网络错误。我已经设置了VPC Peering,并启用了无服务器的VPC连接器,并在应用程序yaml中添加了VPC_access_connector属性,并在Atlas中列出了连接器的IP范围。我看到的确切错误是

> MongoNetworkError: failed to connect to server [testcluster-shard-00-00-fbyja.gcp.mongodb.net:27017] on first connect
> [MongoNetworkError: connection 4 to testcluster-shard-00-00-fbyja.gcp.mongodb.net:27017 closed]

我的代码是

var express = require("express");
var app = express();
require('dotenv').config();
var cors = require('cors');
const BodyParser = require('body-parser');
const MongoClient = require("mongodb").MongoClient;
const ObjectId = require('mongodb').ObjectID;
const CONNECTION_URL = process.env.DB_CONNECTION;
app.use(cors());
app.use(BodyParser.json());
app.use(BodyParser.urlencoded({extended: true}));
var database, collection;
app.listen(process.env.PORT, () => {
MongoClient.connect(CONNECTION_URL, {useNewUrlParser: true}, (error, client) => {
if(error){
throw error;
}
database = client.db("test");
collection = database.collection("test");
})
});

不幸的是,您无法在Atlas中为M0/M2/M5配置对等连接。

网络对等连接您不能在M0自由层或M2/M5共享集群上配置设置网络对等连接。

此外,由于您使用的是应用程序引擎,您的应用程序落后于GCP的负载均衡器,您将无法将一组稳定的静态IP列入白名单。

目前可能的解决方案:

  • 将Atlas集群升级到M10以访问对等功能。这可能会使您每月花费~60美元
  • 如果它不是用于生产,并且你不想为此投入资金,我建议你使用一个免费的层实例来部署你的应用程序,然后将其IP列入Atlas集群层的白名单

尽管在Atlas中不能对Mo/M2/M5集群使用GCP VPC网络对等。

您可以使用与VPC网络连接的静态IP设置云NAT。您可以将云NAT的静态IP添加到Atlas IP白名单中。

最新更新