Google App Engine - 适用于不同域和应用程序的同一个数据存储
-
03-07-2019 - |
题
是否可以以某种方式访问一个数据存储?或者从不同的域访问一个应用程序。
解决方案
每个应用都有自己的数据存储和内存缓存(在该应用的所有版本之间共享)。
现在似乎不可能在应用程序之间共享数据存储(除非你为此提供一些Web服务),但这将是一个很好的功能,所以也许你应该向Google提交功能请求 < a href =“http://code.google.com/p/googleappengine/issues/detail?id=1300”rel =“noreferrer”>投票赞成。
对于域名,您可以将您的应用与 Google管理的域名相关联应用。同一应用程序的多个域应该没有问题(SSL证书除外)。
其他提示
App Engine 最近添加了对称为模块的功能的支持 (文档: 去, Python, 爪哇)
App Engine 模块(或以下简称“模块”)是一项功能,可让开发人员将大型应用程序分解为可以共享有状态服务并以安全方式进行通信的逻辑组件。处理客户请求的应用程序可能包含单独的模块来处理其他任务:
- 来自移动设备的 API 请求
- 内部的、类似管理的请求
- 计费管道和数据分析等后端处理
当您创建新模块时,App Engine 将创建与模块名称相对应的 url。如果您只有一个模块,那么名称将为 default
. 。例如
- http://默认.myapp.appspot.com
- http://移动前端.myapp.appspot.com
- http://我的模块.myapp.appspot.com
使用 域名屏蔽, ,然后您可以直接从:
- www.myapp.com => http://默认.myapp.appspot.com
- www.myapp-mobile.com => http://移动前端.myapp.appspot.com
- www.example.com => http://我的模块.myapp.appspot.com
应用的每个版本都由相同的数据存储区支持。如果要限制对单个请求的访问,则需要向模型添加字段以强制执行该限制。如果你想走得那么远,数据存储区API中就会出现这种情况的低级钩子。
是的,您可以将单个App Engine应用程序添加到多个域 - 即使在多个Apps帐户中也是如此。
Kyle的解决方案可行,但App Engine从未被设计为以这种方式使用。因此,如果您将应用程序设计为依赖于此类设置并且谷歌因任何原因而限制,那么您就会被搞砸。
您可以使用命名空间Java API 进行多租户