概要
ファイルを配置するだけでメンテナスモードにできる Flask アプリを試してみました
環境
- macOS 11.1
- Python 3.8.5
- flask 1.1.2
サンプルコード
vim app.py
import os
from flask import Flask, abort, make_response
app = Flask(__name__)
@app.before_request
def check_under_maintenance():
if os.path.exists("maintenance"):
abort(503)
@app.route('/')
def index():
return "ok"
@app.errorhandler(503)
def error_503(error):
return make_response({"code":"server_maintenance_mode"}, 503)
動作確認
FLASK_APP=app.py pipenv run flask run
で起動しますcurl localhost:5000
=> ok
ファイルを配置するとメンテナンスモードになります
アプリの再起動は不要です
touch maintenance
curl localhost:5000
=>{"code":"server_maintenance_mode"}
最後に
アプリ層が大量にある場合は辛いので前段にリバースプロキシや LB などを配置してそこでメンテナスモードにするほうが良いと思います
0 件のコメント:
コメントを投稿