2020年12月21日月曜日

Flask でファイルを配置したらメンテナスモードにする

概要

ファイルを配置するだけでメンテナスモードにできる 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 件のコメント:

コメントを投稿