Google App Engineを試してみる

先日公開されたGoogle App Engineを動かしてみました。
参考:秋元@サイボウズラボ・プログラマー・ブログ: Google App Engine SDKを使ってみた
googleのリソースを使って色々出来るみたい。とりあえず昨日の夜に登録してみたけど、制限されてるらしくアカウントが使えません。「有効化したらメールでお知らせするので、それまでSDKで遊んどいてね」とのこと。

SDKのインストール

http://code.google.com/appengine/downloads.htmlに行くと、Windows、Mac、Linux用のバイナリが置いてあるので、Mac版をダウンロード。Leopard環境には何の問題も無くインストール出来ました。WindowsとLinuxにはpytonのインストールも必要です。

サクッとインストール。実行用のファイルは/usr/local/bin/dev_appserver.pyね。

まずは「Hello World

と言っても用意されているドキュメント通りに事を進めるだけです。
プロジェクトのディレクトリが必要なのでホームの下にgoogleappengine/helloworldを作成します。

mkdir googleappengine/helloworld
cd googleappengine/helloworld

pythonでCGIを作ります。初めてperlを触った時を思い出しました。

 > vim helloworld.py

print "Content-Type: text/html"
print ""
print "<html> <head> <title>Hello, World!</title> </head>"
print "  <body> <font color='red'>"
print "     Hello, World!"
print "    </font> </body>"
print "</html>"

同じディレクトリに設定ファイルの「app.yaml」を作成します。これはドキュメントのをコピペ

 > vim app.yaml

application: helloworld
version: 1
runtime: python
api_version: 1
handlers:
- url: /.*
  script: helloworld.py

そして起動

必要なファイルが揃ったので起動してみます。SDKには簡易的なwebサーバも含まれているので直に確認出来ます。初めてRuby on Railsを触った時を思い出しました。

 > /usr/local/bin/dev_appserver.py /Users/ishiikenzou/googleappengine/helloworld

何かが走りはじめます。

INFO     2008-04-09 14:01:36,164 appcfg.py] Checking for updates to the SDK.
INFO     2008-04-09 14:01:36,906 appcfg.py] The SDK is up to date.
WARNING  2008-04-09 14:01:36,906 datastore_file_stub.py] Could not read datastore data from /var/folders/cL/cLhoGiWvFTK1mAQOEAENsk+++TI/-Tmp-/dev_appserver.datastore
WARNING  2008-04-09 14:01:36,906 datastore_file_stub.py] Could not read datastore data from /var/folders/cL/cLhoGiWvFTK1mAQOEAENsk+++TI/-Tmp-/dev_appserver.datastore.history
INFO     2008-04-09 14:01:36,909 dev_appserver_main.py] Running application helloworld on port 8080: http://localhost:8080

ブラウザで確認すると

動きました。ターミナルにはこんなログが出てました。

INFO     2008-04-09 05:04:32,000 dev_appserver.py] "GET / HTTP/1.1" 200 -
INFO     2008-04-09 05:04:32,007 dev_appserver_index.py] Updating /Users/ishiikenzou/googleappengine/helloworld/index.yaml
INFO     2008-04-09 05:04:32,062 dev_appserver.py] "GET /favicon.ico HTTP/1.1" 200 -

便利な世の中になったもんだ。夜に元気があればフレームワーク使って少し凝ったもの作ってみます。アカウントはいつ頃使えるようになるのかな〜

追記とか

  • 用意されてるAPIに「The Mail API」ってのがあったので、もしかしてgmailと絡めて色々出来る!?とか早まって興奮しましたが勘違いでした。
  • これを動かすのに一番敷居が低いのがmacだと思います。macはじまた\(^o^)/