我正在對我的實體進行一些重構,並且想暫時關閉對我的應用引擎應用(管理員除外)的所有訪問,以防止用戶修改任何實體執行維護。GAE/P - 計劃停機維護
什麼是直接的方法來做到這一點?我能想到的唯一簡單方法是創建一個新的app.yaml
文件,其中管理員對所有頁面都是必需的。其中一個缺點是,我無法給用戶一個友好的信息,即訪問將很快恢復。
有沒有更好的方法來做到這一點?
我正在對我的實體進行一些重構,並且想暫時關閉對我的應用引擎應用(管理員除外)的所有訪問,以防止用戶修改任何實體執行維護。GAE/P - 計劃停機維護
什麼是直接的方法來做到這一點?我能想到的唯一簡單方法是創建一個新的app.yaml
文件,其中管理員對所有頁面都是必需的。其中一個缺點是,我無法給用戶一個友好的信息,即訪問將很快恢復。
有沒有更好的方法來做到這一點?
通過修改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.")
這似乎是一個簡單而安全的解決方案,但請讓我知道,如果你看到任何破綻這種方法。
使用管理控制檯的應用程序設置選項卡中的「禁用庫寫入」:https://developers.google.com/appengine/docs/adminconsole/applicationsettings#Disable_Datastore_Writes
這將設置你的數據存儲爲只讀模式,並防止任何用戶進行更改。
編輯:這裏有一個關於如何修改您的應用程序停機期間正常降級的好寫了:https://developers.google.com/appengine/docs/python/howto/maintenance
感謝您的信息。唯一的問題是,我希望能夠以管理員身份執行數據存儲寫入,看起來您的解決方案不會允許我這樣做。 –
剛剛嘗試過:應用程序的寫入已禁用,但仍可以在管理數據存儲查看器中執行操作。我還沒有嘗試過散裝加載程序。 – Sologoub
請看我的答案,讓我知道你的想法。 –