【问题标题】:App Engine SDK DevServer Read-Only Mode?App Engine SDK DevServer 只读模式?
【发布时间】:2010-02-17 19:37:00
【问题描述】:

有没有办法以只读模式运行应用引擎开发服务器,以模拟 Google 将数据存储区置于只读模式的计划维护?

Gracefully Degrading During Scheduled Maintenance

【问题讨论】:

  • +1:有趣的问题!也许向 GAE 问题跟踪器提交“问题”?
  • 一个非常敏锐的观察。也许尼克约翰逊会注意到这一点并帮助快速完成这项工作?请问?
  • 存在 GAE 问题 #1811:允许用户管理员禁用测试功能,这几乎要求相同的东西,而且看起来还没有解决方案。希望 Google 会优先考虑这一点。
  • 过去,我将目录设置为只读,以帮助诊断系统写入生产环境中只读文件夹的问题。我不确定 GAE 开发人员是否使用本地磁盘进行存储。如果是这样,将这些文件夹和内容更改为只读一段时间可能会很有趣。再说一次,这可能是一个意外情况,GAE 可能会窒息。不过值得一试。

标签: google-app-engine


【解决方案1】:

我希望有一个复选框可以将数据存储区设为只读。这个 hack 似乎可以满足我的需要。将以下内容放入您的主处理程序中:

from google.appengine.runtime.apiproxy_errors import CapabilityDisabledError
from google.appengine.api import apiproxy_stub_map

def make_datastore_readonly():
  """Throw ReadOnlyError on put and delete operations."""
  def hook(service, call, request, response):
    assert(service == 'datastore_v3')
    if call in ('Put', 'Delete'):
      raise CapabilityDisabledError('Datastore is in read-only mode')
  apiproxy_stub_map.apiproxy.GetPreCallHooks().Push('readonly_datastore', hook, 'datastore_v3')

def main():
  make_datastore_readonly()

在这里找到: http://groups.google.com/group/google-appengine/msg/51db9d51401715ca

【讨论】:

  • 看起来是个不错的解决方案,但我还没有测试过。 Nick Johnson 最近发表了一篇关于这个问题的帖子:blog.notdot.net/2010/03/…他深入探讨了 Capabilities API 将其用于钩子。
猜你喜欢
  • 2015-08-12
  • 2013-03-05
  • 2012-10-14
  • 1970-01-01
  • 2012-06-22
  • 2011-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多