GoogleAppEngineでDjangoが動くまで
Qiitaにもほぼ同じ内容の記事を投稿しています。
はじめに
職場で雑談してたら、なんかbot作りたくなった。 そうだ、GoogleAppEngineを使ってみよう。 という訳で、GoogleAppEngineでDjangoのテストプロジェクトを動かすまでのメモを残します。
環境
今回はPython3系を使いたいのでFlexible Environmentを使います。
Flexible Environment
現在betaですが、Python3.4を使いたいならこれ。 他にも、Standard Environmentでは外部ライブラリをインストールする時に一工夫必要でしたが、Flexible Environmentではルートディレクトリにrequirements.txtを置いておけばOKだったり、色々便利になっているようです。
参考:https://cloud.google.com/appengine/docs/flexible/python/using-python-libraries?hl=ja
deployする時にちらっとDockerfileが見えるので、内部的にはDockerのコンテナを作っている模様。
【追記】 Flexible Environmentでは現時点では無料枠がないのでご注意ください。
https://cloud.google.com/appengine/pricing?hl=ja
GoogleCloudSDKのインストール
GoogleCloudSDKって何
gcloud app deploy
という魔法の呪文を使えるようにするためのツール。 他にも諸々用途はあるらしいけど特に調べてない。
インストール
https://cloud.google.com/sdk/docs/quickstart-debian-ubuntu?hl=ja
基本的には上記URLに書いてあるコマンドを入力していけばOK。
GoogleAppEngineの準備
GoogleCloudPlatformのコンソールからの準備
プロジェクトを作る→AppEngineをセットアップするだけなので割愛。
サンプルプロジェクトをダウンロードする
https://cloud.google.com/appengine/docs/flexible/python/quickstart?hl=ja の途中に書いてある通り、gitからcloneする。
git clone https://github.com/GoogleCloudPlatform/python-docs-samples
cloneした中に、
python-docs-samples/appengine/flexible/hello_world_django
というディレクトリがあるので、これを適当なところにコピーして使う。
ローカルで動かしてみる
virtualenv venv --python=/usr/bin/python3.4 source venv/bin/activate pip install -r requirements.txt
で環境を作り、
python manage.py runserver --settings=project_name.settings
もしくは
gunicorn project_name.wsgi:application --env DJANGO_SETTINGS_MODULE=project_name.settings
で動かしてみる。
一点注意として、(現時点では)requirements.txtに書かれているDjangoのバージョンが1.10b1なので、気になる場合は随時変更する。
deployして動かしてみる
gcloud app deploy
で、appengineにdeployされる。 結構時間がかかりますので、待ちましょう。