GoogleAppEngine + PythonでHello World!
うちの研究室には誰もPython使いはいないはずなのに、オライリー本があったので試しに勉強してみようかなぁと思っている。
- 作者: Mark Lutz,夏目大
- 出版社/メーカー: オライリージャパン
- 発売日: 2009/02/26
- メディア: 大型本
- 購入: 12人 クリック: 423回
- この商品を含むブログ (133件) を見る
MacでGAEセットアップ
幸いにしてMacだとすぐに下準備が済んじゃうので、セットアップと言うほどのことはないが一応。
Macでは(少なくともLeopardでは)Pythonが標準インストールされているはずなので、その辺は割愛。心配なら
$ which python
で、パスの通ったディレクトリにあるか確認。
Gmailなどで既にアカウントがあれば必要なし。登録後はappengineのトップページで"Create an Application"する。Application Identifierにはアプリケーションに与えるユニークなIDを、Application Titleにはアプリケーションの名前を入力して"Save"。以降の説明のため、今回はIdentifierの方を"helloworld"と登録したことにする。登録後は
https://appengine.google.com/dashboard?&app_id=helloworld
から各種情報を参照できる。
Google App Engine SDK for Pythonをダウンロード。
http://code.google.com/intl/ja/appengine/downloads.html#Google_App_Engine_SDK_for_Python
ダウンロード後はGoogleAppEngineLauncher-*.*.*.dmgファイルを開き、GoogleAppEngineLauncher.appを/Applications/などへコピーする。
コーディング?
とりあえず作業ディレクトリを作っておく。
$ mkdir ~/gae
として、ホームディレクトリ下に作ったとする。
GoogleAppEngineLaucher.appを開く。
左下の"+"ボタン(もしくはcmd + N)から新規アプリケーションを作成。Application Nameは任意の名前で構わないが、先程Googleで登録したIdentifier、すなわちhelloworldとした方が何かと楽。Application Directoryは~/gaeを設定して"Create"。これで自動的に~/gae/helloworldディレクトリにapp.yaml、index.yaml、main.pyの3つのファイルが生成される。
$ ls ~/gae/helloworld
app.yaml index.yaml main.py
まずはmain.pyをエディタで開いてみる。
#!/usr/bin/env python # # 中略 # from google.appengine.ext import webapp from google.appengine.ext.webapp import util class MainHandler(webapp.RequestHandler): def get(self): self.response.out.write('Hello world!') def main(): application = webapp.WSGIApplication([('/', MainHandler)], debug=True) util.run_wsgi_app(application) if __name__ == '__main__': main()
これがメインとなるPythonスクリプト。最新のver1.3.0では、デフォルトがHello Worldを表示するスクリプトとなっているので、今回は編集せずにこのまま使う。次にapp.yaml。
application: helloworld version: 1 runtime: python api_version: 1 handlers: - url: .* script: main.py
アプリケーションの設定を記述したYAMLファイル。applicationがIdentifierで設定したもの(例ではhelloworld)になっていること、handlers:scriptがmain.pyになっていることを確認。
テストとデプロイ
実際に動かしてみる。まずはローカルで。GoogleAppEngineLauncherでhelloworldを選択し、"Run"(もしくはcmd + R)でサーバを起動。緑の再生マークが表示されたら、"Browse"(cmd + B)。
http://localhost:8080/ が開き、うまくHello world!と表示された。それではこれを実際にデプロイしてみる。ローカルのサーバは"Stop"(cmd + .)しておく。
デプロイも簡単。"Deploy"(cmd + D)ボタンが見えてるね。これをクリックすると、Googleアカウントへのログインダイアログが出るので、必要事項を記入しログイン。ログコンソールがずらーっと流れて、
*** appcfg.py has finished with exit code 0 ***
と表示が出れば終わり。
http://helloworld.appspot.com/
上記URLにアクセスすると、実際のアプリケーションが動作しているのがわかる。URLのhelloworldの部分はIdentifierに置き換えてくだしあ。
おわりに
とても簡単でした。ただこれから先のことについては、あまりネットでも情報が見つかりませんね。Google Codeの方でお勉強するのが良さそう。