当前位置: 首页 > 知识库问答 >
问题:

无法从GCP App Engine连接到Mongo Atlas

井翰
2023-03-14

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

共有2个答案

谭勇
2023-03-14

虽然您不能在Atlas中对Mo/M2/M5集群使用GCP专有网络对等。

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

白嘉志
2023-03-14

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

网络对等互连无法配置在M0免费层或M2/M5共享群集上设置网络对等互连连接。

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

目前可能的解决方案:

  • 将您的Atlas集群升级到M10以访问对等互连功能。这可能会花费您大约60USD/月
  • 如果它不是用于生产,并且您不想为此投入资金,我建议您使用免费层实例来部署您的应用程序,然后将其IP列入Atlas clustier层的白名单
 类似资料:
  • 这是我的实体 这是我的主课 这就是我的persistence.xml 堆栈跟踪:

  • 我试图从Windows运行一个HBase Java客户端程序。我所拥有的只有1)一个没有任何编译器错误的Java程序2)hbase-site.xml(我没有其他HDFS或HBase配置文件。只有上面的一个。)当我运行程序时,我得到了以下错误--在最后一个块中给出的。我错过了什么吗?我在这里都给出了。

  • 问题内容: 我在Mac OS 10.8.5上安装了docker-machine 0.1.0和docker-compose 1.1.0。 Docker-machine正常运行,并且能够通过docker-machine ssh连接。 但是无法从docker-compose连接。 无法通过http + unix://var/run/docker.sock连接到Docker守护程序-它正在运行吗? 如果它

  • 我在Mac OS 10.8.5上安装了docker-machine 0.1.0和docker-compose 1.1.0。 docker-machine运行正常,并且能够通过docker-machine SSH进行连接。 但无法从Docker-Compose连接。 无法连接到HTTP+UNIX上的Docker后台进程://var/run/Docker.sock-它正在运行吗? 如果它位于非标准位置

  • 我正在尝试将spring连接到MySQL。然而,我得到以下错误,谁能帮助? 应用程序.属性: spring.datasource.url=jdbc:mysql:/localhost/osworks?createdatabaseifNotexist=true&servertimezone=utc spring.datasource.username=root spring.datasource.da

  • 我在将Netbeans中的Java与localhost中的mariadb连接时遇到问题。我已经看到一些类似的帖子,从Linux上NetBeans的Java应用程序连接到MariaDB(Mageia)但不起作用,这是非常相似的,所以我不知道为什么这个帖子不能帮助我。 我在/etc/my.cnf中选中了skip-networking指令,但它已经被注释了。

  • 我试图连接到mysql数据库从docker图像。然而,这是投掷错误。 下面是我正在使用的docker图像。https://hub.docker.com/_/mysql/ 下面是我用来运行docker映像的命令。 以下是命令的输出 如果我使用docker检查IP并ping该IP,则显示IP不可访问。 如果我尝试使用和我遇到以下错误。 无法加载身份验证插件“缓存\u sha2\u密码”。

  • 我按照这里给出的步骤从外部Jenkins实例连接到openshift在线代理。然而,当我提供OpenShift凭据时,即使我似乎拥有正确的凭据,登录也无法通过。消息“无法请求https://openshift.redhat.com/broker/rest/domains:OpenShift Online(下一代)开发者预览版在这里!我们不会接受OpenShift Online(v2)平台上的新用户