はじめに
AWS環境にデプロイする際に、SSMParameterから取得した値を設定していたら沼ったので記事にしました。
誰かの助けになれば幸いです🙏
DEBUGモードとは?
settings.py
にある
こいつのことである
↓
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG=True
DEBUG=True の場合
エラー時に詳細な情報が表示される
METAデータがすべて表示される(一応パスワード系の項目は伏せ字になるがそれ以外は全部見れる)
DEBUG=False の場合
汎用的なエラーにまとめられ詳細は表示されない
# SECURITY WARNING: don't run with debug turned on in production!
と書いてあるように、本番環境で丸見えはまずいのでFalseにする必要がある
本題
AWS環境(AppRunner)にデプロイするぞ!
というタイミングで下記のように設定を行った
ところがDEBUG=True
のままになっていて原因の特定に時間がかかった
解決案
SSMParameterから取得したDEBUGはstrなのでboolに変換してあげる
DEBUG = bool(strtobool(env('DEBUG'))) if type(
env('DEBUG')) is str else env('DEBUG')
文字列FalseはTrueと判定される
DEBUG = "False"
if DEBUG:
print('debug mode on')
else:
print('debug mode off')
# debug mode on がprintされる
まとめ
沼るときって意外としょーもない理由だったりするなぁと痛感しました