Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app engine 谷歌应用程序引擎-一个用于不同域和应用程序的数据存储_Google App Engine - Fatal编程技术网

Google app engine 谷歌应用程序引擎-一个用于不同域和应用程序的数据存储

Google app engine 谷歌应用程序引擎-一个用于不同域和应用程序的数据存储,google-app-engine,Google App Engine,这是否可能访问一个数据存储?或者从不同的域访问一个应用。每个应用都有自己的数据存储和memcache(在该应用的所有版本中共享)。 现在似乎不可能在应用程序之间共享数据存储(除非你为此提供了一些web服务),但这将是一个很好的功能,所以也许你应该向Google提交一个功能请求 至于域,你可以将你的应用程序与。同一应用程序的多个域应该没有问题(SSL证书除外)。应用程序的每个版本都由相同的数据存储支持。如果要限制对单个请求的访问,则需要在模型中添加一个字段以强制执行该限制。如果您想走得更远的话,在

这是否可能访问一个数据存储?或者从不同的域访问一个应用。

每个应用都有自己的数据存储和memcache(在该应用的所有版本中共享)。 现在似乎不可能在应用程序之间共享数据存储(除非你为此提供了一些web服务),但这将是一个很好的功能,所以也许你应该向Google提交一个功能请求


至于域,你可以将你的应用程序与。同一应用程序的多个域应该没有问题(SSL证书除外)。

应用程序的每个版本都由相同的数据存储支持。如果要限制对单个请求的访问,则需要在模型中添加一个字段以强制执行该限制。如果您想走得更远的话,在数据存储API中有针对这类事情的低级钩子


是的,您可以将单个应用程序引擎应用程序添加到多个域中,即使是在多个应用程序帐户中。

应用程序引擎最近添加了对名为模块(文档:,)的功能的支持

appenginemodules(以下简称“Modules”)是一种功能,它允许开发人员将大型应用程序分解为逻辑组件,这些逻辑组件可以共享有状态服务并以安全的方式进行通信。处理客户请求的应用程序可能包括处理其他任务的单独模块:

  • 来自移动设备的API请求
  • 内部的、类似管理员的请求
  • 后端处理,如计费管道和数据分析
创建新模块时,App Engine将创建与模块名称相对应的url。如果您只有一个模块,则名称将为
默认值
。e、 g

  • http://默认值.myapp.appspot.com
  • http://mobile-frontend.myapp.appspot.com
  • http://我的模块.myapp.appspot.com
使用,您可以从以下位置进行指导:

  • www.myapp.com=>http://default.myapp.appspot.com
  • www.myapp-mobile.com=>http://mobile-frontend.myapp.appspot.com
  • www.example.com=>http://我的模块.myapp.appspot.com

凯尔的解决方案会起作用,但应用程序引擎从未设计成这样使用。因此,如果你设计你的应用程序依赖于这种设置,而谷歌出于任何原因压制你,那么你就完蛋了

您可以使用

实现多租户,或者为同一应用程序的不同版本提供不同的数据存储?对于memcachedDon来说,这是一个相同的问题。我不认为这是相关的。OP希望多个应用程序共享一个数据存储,而不是同一个应用程序共享多个数据存储(在本例中,名称空间很有用),但是,似乎不可能为这些多个域使用不同的版本或模块。使用此技巧,您将失去版本控制系统的最佳优势。当新部署后出现问题时,您将无法轻松切换回(还原到更高版本),因为“makedefault”开关由于域屏蔽而无法真正执行任何操作。在这种情况下,由于高传播延迟,改变域的情况更糟。Appengine版本不适用于此。这是一种黑客行为,我不鼓励使用它。@Lepi,当使用模块时,您设置为默认的版本将在访问基本url时显示。例如,
default
模块的版本
1
将显示在url
1.default.myapp.com
上,也显示在
default.myapp.com
上。因此,更改
默认
路由不需要更改DNS记录。我希望这有帮助。