GAE/P -为维护安排停机时间



我正在做一些重构我的实体,我想暂时关闭所有访问我的应用程序引擎应用程序(除了管理员),以防止用户修改任何实体,而我正在执行维护。

做这件事的直接方法是什么?我能想到的唯一简单的方法是创建一个新的app.yaml文件,其中所有页面都需要管理员。这样做的一个缺点是,我将无法给用户一个友好的消息,即访问将很快恢复。

有更好的方法吗?

使用管理控制台的应用程序设置选项卡"禁用数据存储写入":https://developers.google.com/appengine/docs/adminconsole/applicationsettings#Disable_Datastore_Writes

这将您的数据存储设置为只读模式,并阻止任何用户进行更改。

编辑:这里有一篇关于如何修改应用程序以在停机期间优雅地降级的好文章:https://developers.google.com/appengine/docs/python/howto/maintenance

我已经通过修改WSGIApplication创建了一个维护模式。

我的main.py现在看起来像这样:

import webapp2
import views
maintenance_mode = False
# These routes need to be always available
routes = [
    # Static pages
    (r'/(|about|contact|help|faq|terms|privacy|users|methods)', 
     views.Static),
    # Other routes that should always be available here
]
if maintenance_mode:
    routes += [(r'/.*', views.Maintenance)] # Displays a maintenance message
    application = webapp2.WSGIApplication(routes)
else:
    routes += [
        # Routes that are not available in maintenance mode
    ]
    application = webapp2.WSGIApplication(routes)

views.py有如下内容:

class Maintenance(webapp2.RequestHandler):
    def get(self):
        self.response.write (
            "My app is down for maintenance and should be back up shortly.")
    def post(self):
        self.response.write (
            "My app is down for maintenance and should be back up shortly.")

这似乎是一个简单而安全的解决方案,但如果你看到这种方法中的任何缺陷,请告诉我。

相关内容

  • 没有找到相关文章

最新更新