如何通过GAE在GCE上访问mongodb
我已经在GAE上部署了我的演示应用程序,可以很好地与mLab配合使用,但当我尝试在GCE上部署mongodb(mongodb(Google Click to deploy))时,部署成功了,但我不知道如何在GAE上运行的我的应用程序上设置te URI 我尝试内部和外部IP,但似乎不工作如何通过GAE在GCE上访问mongodb,mongodb,google-app-engine,google-cloud-platform,google-compute-engine,Mongodb,Google App Engine,Google Cloud Platform,Google Compute Engine,我已经在GAE上部署了我的演示应用程序,可以很好地与mLab配合使用,但当我尝试在GCE上部署mongodb(mongodb(Google Click to deploy))时,部署成功了,但我不知道如何在GAE上运行的我的应用程序上设置te URI 我尝试内部和外部IP,但似乎不工作 谢谢GAE标准部署是沙盒式的。因此,您无法连接到GCE实例的内部IP。您可以将其想象为两个不同专用网络上的两个不同设备,它们无法使用内部IP相互通信。但是,如果其中一个设备(本例中为GCE实例)具有公共IP,并且
谢谢GAE标准部署是沙盒式的。因此,您无法连接到GCE实例的内部IP。您可以将其想象为两个不同专用网络上的两个不同设备,它们无法使用内部IP相互通信。但是,如果其中一个设备(本例中为GCE实例)具有公共IP,并且其专用网络(防火墙)允许通过设备所需的端口进行通信,则它们始终可以通信 另一方面,如果GAE部署在flex环境中,您应该能够通过内部IP使用API连接到db 我已经尝试并成功地使用这个flex环境来处理内部和外部IP地址。和您一样,我使用CloudLauncher部署Mongodb,它创建了带有公共IP和网络标签Mongodb和Mongodb的GCE实例。然后,通过SSH连接到主db实例,输入一个db、用户名和密码 为了使用内部IP,我只是根据示例创建/修改了keys.json文件,如下所示:
{
"mongoHost": "internal IP address",
"mongoPort": "27017",
"mongoDatabase": "db",
"mongoUser": "username",
"mongoPass": "password"
}
因此,我不必担心URI,因为server.js中的代码通过传递以下字符串来处理URI:
mongodb://${user}:${pass}@${host}:${port}
但是对于您的演示应用程序,您可能需要查看MongoDB官方文档中的标准连接字符串格式URI
至于使用公共IP,我必须创建一个网络防火墙规则,允许在端口27017上使用与网络标记相同的目标标记进行tcp入侵,以便仅通过端口访问MongoDB实例。接下来,我修改了keys.json文件,将内部IP替换为公共IP 您是否在GCE firewall中创建了防火墙规则以允许mongodb流量(端口27017)。以下是官方mongodb标准URI方案的示例。