【问题标题】:Accessing MongoDB from AppEngine app从 AppEngine 应用程序访问 MongoDB
【发布时间】:2014-11-23 13:15:44
【问题描述】:

我有一个应用程序,用 Golang 编写,可与 MongoDB 配合使用。我还有运行 MongoDB 的 VM 实例,使用 Click-to-deploy 部署。

我可以连接到外部 MongoDB 实例,该应用程序可以在本地运行,也可以在 GAE 上的 VM 实例上运行,但是当作为 appengine 实例启动时(即通过 goapp 部署)不能。在日志中,我看到“无法访问服务器”错误。我已经对所有网络配置进行了双重测试,并在我的“默认”网络中打开了 MongoDB 端口。

我发现一些文章和帖子说您不能将 MongoDB 与 appengine 一起使用,并且需要与 Datastore 一起使用,但它们都很旧(如 2011/2012),我无法在 AppEngine 文档中找到确认。

所以问题是:

  • 我可以将 GAE 托管的 MongoDB 与我的 AppEngine 应用程序一起使用吗?
  • 如果是,如何调试 appengine 实例的连接问题?

提前致谢。

【问题讨论】:

  • GAE 传出是有限的。您无法连接到任意资源。最近这种情况没有太大变化。如果您可以让 MongoDB 通过 HTTP 接口进行通信,则可以使用它。
  • 谢谢@Paul Collingwood,但我怎么能百分百确定呢?我在文档中找不到限制说明。
  • 更多的是关于你被允许做什么而不是你不被允许做什么。假设一切都是不允许的,并且只允许记录的内容。连接到任意资源/端口?您需要使用托管实例来代替您可以运行任何代码并使用任何连接方法的地方。请参阅此处:cloud.google.com/appengine/docs/managed-vms 而 GAE 带有它自己的数据库(NOSQL/SQL),它希望您使用,因此您当前的问题。
  • 好的,我知道了,谢谢。

标签: mongodb google-app-engine


【解决方案1】:

由于 appengine 沙箱的限制性质,您似乎无法从 appengine 应用直接使用 MongoDB 连接。 来自https://cloud.google.com/appengine/docs/managed-vms/网络访问:仅通过 App Engine 服务(包括出站套接字)

有一些通过 HTTP REST 接口访问 MongoDB 的可能性,但不是我的情况。

【讨论】:

  • 这还是没变?我正在努力将在 mongolab(在谷歌云平台上)上运行的 MongoDB 与在 Google App Engine 上运行的 Lumen 项目连接起来。我应该放弃尝试吗?我没有机会连接它吗?
猜你喜欢
  • 1970-01-01
  • 2021-12-07
  • 1970-01-01
  • 2017-09-25
  • 2013-06-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多