ローカルで作成していたアプリ(Django)にCeleryとRedisで非同期処理をおこなっていた為、
WebAppsにどうデプロイすればいいか分からなかったのでその際の備忘録として。
個人学習用でとりあえず動いたからいいものの、あまり良い方法では無いかも。
Azure Cache for Redisのセットアップ
検索窓にredisと入れると Azure Cache for Redisと出るので選択
① 【作成】を選択して設定を進める。 > デプロイが始まるので少し待つ。
② 非SSLポートを有効化しておく。
③ アクセスキーを表示してプライマリキーをコピーしておく。
④ ホスト名もコピーしておく。
ローカルのDjangoアプリからAzureRedisへの接続をテスト
settings.pyを変更
# この箇所を変更
CELERY_BROKER_URL = 'redis://:<プライマリキー>@<ホスト名>:6379/0'
起動してみて、うまくいった事を確認したら、隠す処理して次。
Azure web appの設定
① 設定 > 構成 > アプリケーションの設定で「新しいアプリケーション設定」
② 「CELERY_BROKER_URL」 を 先程の redis://:<プライマリキー>@<ホスト名>:6379/0 にして保存
③ 構成 > 全般設定 > スタートアップコマンドにstartup.sh としておく。※Azureにスタートアップファイルを実行するよう指示
プロジェクトフォルダにstartup.shファイルを作る
プロジェクトのルートフォルダにstartup.shという名前のスタートアップファイルを作成。
以下内容。公式はこちらに。
gunicorn --bind=0.0.0.0 --timeout 600 <module>.wsgi & celery -A <module> worker -l INFO
Azure Web Appsにコミット!
あとは好きな方法でコミット!
動いた!やった!
とはいえ、内容よくわかってないな…精進します!!
参考