我正在尝试将在GCP App Engine上运行的nodejs应用程序连接到Mongo Atlas,但是我收到网络错误。我已经设置了VPC对等并启用了无服务器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");
})
});
答案 0 :(得分:2)
很遗憾,您无法配置peering connection for M0/M2/M5 in Atlas。
网络对等连接,您无法在M0免费层或M2 / M5共享群集上配置Set up a Network Peering Connection。
此外,由于您使用的是App Engine,因此您的应用程序位于GCP的负载均衡器之后,因此您无法将稳定的一组静态IP列入白名单。
此时可能的解决方案:
答案 1 :(得分:0)
尽管您不能在Atlas中将GCP VPC网络对等用于Mo / M2 / M5集群。
您可以设置与VPC网络连接的Cloud NAT with a static IP。您可以将Cloud NAT的静态IP添加到Atlas IP白名单中。