GAEでFlaskのアプリケーションを動かす手順メモ。
正直勉強し始めたばかりなのでなにかバカやらかしてるかもしれないので指摘をよろしくおねがいします…。
GoogleAppEngineとは
Wikipediaによると
Google App Engine (GAE) は、Googleの提供するサービスの1つであり、ウェブアプリケーションをPHP・Python・Java・Go言語を使用して開発し、Googleのインフラストラクチャー上で実行し、バージョン管理することができる。Google Cloud Platformの一部。
とのこと。まぁよく分からないけどとってもすごい楽なサーバー。
Flaskとは
FlaskはPythonのWebフレームワーク。djangoとかと違って、必要最低限の機能しか持ち合わせていないことからmicroframeworkなんて呼ばれていたりするらしい。ちょこっとWebアプリを開発したいときにうってつけ。
詳しくはこのへんをご覧ください。
GAEでとりあえず動かすまで
使用環境
使用した環境はUbuntu14.04、Python2.7.6です。ちなみにUbuntuは今回ConohaのVPS上で稼働しているものを使用しました。
ここに書く方法で他のLinuxでも対応できると思いますが、Pythonは2.7.x系が必須です。
1.SDKを落とす
Python用のSDKをGoogleから落とします。リンクはここに。
Linux/OtherPlatformsのgoogle_appengine_1.9.38.zip
(執筆時点)のリンクをコピって
wget https://storage.googleapis.com/appengine-sdks/featured/google_appengine_1.9.38.zip
とかやってあげればいいと思います。
落としてきたzipはunzipあたりで展開して任意のディレクトリに移動してあげてください。
2.Pathを通す
1で落として展開したgoogle_appengineのディレクトリにpathを通しておくとのちのち楽です。vim ~/.bash_profile
とかしてあげて、
export PATH=$PATH:/usr/local/bin/google_appengine
とか書いて保存した後にsorce ~/.bash_profile
とかでOKです。
3.テストプロジェクトをcloneする
自分でイチから書いてもいいんですけど、今回は動かすところがゴールってことでGoogleCloudPlatformのGithubからサンプルをcloneしましょう。gitが入ってない方はgit入れておいてもらって、
git clone https://github.com/GoogleCloudPlatform/appengine-flask-skeleton.git
で落とせるかと思います。
4.実行する
テスト用のサーバーは、SDKのdev_appserver.pyですので、実行したいときは
dev_appserver.py /path/to/project
みたいな感じになります。(path/to/projectはプロジェクトのディレクトリまでのパスであって、main.pyとかではないことに注意。)
ちなみにVPSとかで実行している場合は上のコマンドではブラウザから見ることができないので
dev_appserver.py --host 0.0.0.0 /path/to/project
としてあげてからhttp://example.com:8080
へアクセスしてみてください。
エラーがでるとき
もしかしたらライブラリが足りないのかもしれません。その場合は、
pip install -r requirements.txt -t lib
としてあげてから実行するといいと思います。