サーバサイドアプリを作るのに、久々に GAE (Google App Engine) をやろうと手を動かしてみようとしたものの、環境構築が面倒すぎてやる気がなくなった。
ところが、調べ物してる最中に Web IDE なる分野があることを知り、ここ数年で実用に耐えうる飛躍を遂げていることにびびった。
というわけで、Web IDEでも高機能だと言われる Cloud9 を使って GAE/p (Google App Engine for Python) の開発環境を構築するところまでまとめる。なんかニーズが多そうだけど、特に日本語のTipsサイトがほとんど見つからなかった。
Cloud9の準備
準備もなにも、サイトにアクセスしてログインすればOK。
なお、Githubアカウントがあれば、すぐにログインして使える。
Cloud9
https://c9.io/
ちなみに、制限付きだが、現状は期限なしでFreeで使える (こちらを参照)。
とりあえず適当にWorkspaceを作っておく。
なお、Choose a template では Custom を選んでおく。
Workspaceを作ったあとIDEが起動する。
こんな感じ↓
Cloud9ではLinux Terminalが使える。
これが非常にありがたい。
IDEの下部に bash タブがあるのでここでコマンドが叩ける。
GAE SDKのインストール
bash Terminal 上でSDKをダウンロードする。
ダウンロードやzipの展開場所はどこでもよいが、以下のコマンド例では_sdk_ フォルダを作って、その下に展開している。
$ mkdir sdk
$ cd sdk
$ wget https://storage.googleapis.com/appengine-sdks/featured/google_appengine_1.9.30.zip
$ unzip google_appengine_1.9.30.zip
なお、上記は2016/01/10時点での最新バージョン。
取得前に最新バージョンをチェックしておくのがよい。
PATHを通す。
$ vi ~/.bashrc
(末尾に追記)
PATH=$PATH:/home/ubuntu/workspace/sdk/google_appengine/
読み込んでおく。
$ source ~/.bashrc
Pythonのバージョンを調べる。
GAEはPython2.7を要求しているが、Cloud9環境も何もしなくても2.7系になっていたのでこのままでOK。
$ /usr/bin/env python -V
Python 2.7.6
インストールはここまで。
Hello World を動かす
Hello World (サーバアプリ) をつくり、GAEの開発用ランタイムをCloud9上で起動して、動作確認をする。この投稿のキモ。
まずはHello Worldなサンプルコード。
workspace直下だとあれなので、app1 フォルダを作ってそこに置くことにする。
print 'Content-Type: text/plain'
print ''
print 'Hello, world!'
続いてアプリのConfigファイルを用意する。先のapp1フォルダ上に置く。
application: app1
version: 1
runtime: python
api_version: 1
handlers:
- url: /.*
script: hw.py
いざ、Cloud9上でGAE開発用ランタイムを起動する。
一般的なGAE環境だと、localhost:8080などでアクセスできるが、Cloud9だとそうもいかず。
Cloud9 IDE上では使えるポートが限られている (こちら参照)。
以下のようにhostとportを指定して起動する。
$ dev_appserver.py app1 --host $IP --port $PORT --admin_host $IP --admin_port 8082
このとき、$IPには 0.0.0.0
が、$PORTには 8080
が入っている。
うまく起動すると、以下のようなCloud9のメッセージが表示される。
ちなみにダメだった場合はこんな感じ↓
--hostと--port指定がうまくいっていないとこうなる。
起動したランライム上のサンプルアプリにアクセスする。
Cloud9上で開いたPortとURLの関係はここに説明がある。
--port で $PORT (=8080) を指定しているので、以下のURLにアクセスすればOK。
https://<workspace-name>
-<username>
.c9users.io/
<workspace-name>
と<username>
はそれぞれの環境で置き換える。(ex. test-yamadataro.c9users.io)
なお、先の説明ページでは、URLは https のように見えるが、実際には http でもアクセスできた。
以下のように表示されればOK。
こうしてまとめてみるとなんてことないが、情報が少なくとっかかりにくかった。
皆さまの環境構築の一助になれば幸い。