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

Mongodb 无法从GCP应用程序引擎连接到Mongo Atlas,mongodb,google-app-engine,mongodb-atlas,Mongodb,Google App Engine,Mongodb Atlas,我正在尝试将在GCP应用程序引擎上运行的nodejs应用程序连接到Mongo Atlas,但收到网络错误。我已经设置了VPC对等,启用了无服务器VPC连接器,并在app yaml中添加了VPC_访问_连接器属性,并在Atlas中列出了连接器的IP范围。我看到的确切错误是 > MongoNetworkError: failed to connect to server [testcluster-shard-00-00-fbyja.gcp.mongodb.net:27017] on first

我正在尝试将在GCP应用程序引擎上运行的nodejs应用程序连接到Mongo Atlas,但收到网络错误。我已经设置了VPC对等,启用了无服务器VPC连接器,并在app yaml中添加了VPC_访问_连接器属性,并在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");
    })
});

很遗憾,您无法配置

网络对等连接您无法在M0空闲层或M2/M5共享群集上配置

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

目前可能的解决办法:

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

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


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

如果您不使用TLS/SSL,Atlas将直接断开连接。确保您的连接字符串使用
+srv
或显式启用您使用的群集大小的TLS/SSL?@Joe连接字符串正在使用+srv@gumol这是一个M0cluster@gumol不,允许从任何地方访问确实允许连接。我遵循了Atlas和GCP文档中VPC对等的所有步骤。看起来,尽管设置了这个,Atlas的流量仍然是通过外部IP而不是VPC传输的,我还不知道为什么会这样。看起来你是对的。我希望原始的问题海报会标记您的正确性