如何使用GAE访问GCE上的mongodb

2023-12-01

我已经在 GAE 上部署了我的演示应用程序,并且与 mLab 一起正常工作,但是当我尝试在 GCE (MongoDB (Google Click to Deploy)) 上部署 mongodb 时,部署成功,但我不知道如何设置 URI我的应用程序在 GAE 上运行。

我尝试使用内部和外部 IP,但似乎不起作用!

Thanks


GAE 标准部署是沙盒的。因此,您无法连接到 GCE 实例的内部 IP。您可以将其想象为两个不同专用网络上的两台不同设备,它们无法使用其内部 IP 相互通信。但是,如果其中一台设备(本例中为 GCE 实例)具有公共 IP,并且其专用网络(防火墙)允许流量通过设备所需的端口,则它们始终可以进行通信。

另一方面,如果 GAE 部署在 Flex 环境中,您应该能够通过内部 IP 使用 API 连接到数据库。

我在这个灵活的环境中尝试过并取得了成功example对于内部和外部 IP 地址。和您一样,我使用 Cloud Launcher 部署 Mongodb,它创建了具有公共 IP 和网络标签 mongodb 和 mongodb-db 的 GCE 实例。然后我created通过 SSH 连接到主数据库实例来获取数据库、用户名和密码。

为了使用内部IP,我刚刚根据示例创建/修改了keys.json文件,如下所示:

{
  "mongoHost": "internal IP address",
  "mongoPort": "27017",
  "mongoDatabase": "db",
  "mongoUser": "username",
  "mongoPass": "password"
}

所以我不必担心 URI,因为 server.js 中的代码通过传递以下字符串来处理它:

mongodb://${user}:${pass}@${host}:${port} 

但对于您的演示应用程序,您可能需要检查 MongoDB 官方文档以获取标准连接字符串格式 URI。

至于使用公共 IP,我必须创建一个网络防火墙规则,允许 tcp 进入端口 27017,目标标签与网络标签相同,以便限制通过该端口仅访问 MongoDB 实例。接下来,我如上修改了keys.json 文件,将内部IP 替换为公共IP。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用GAE访问GCE上的mongodb 的相关文章

随机推荐