ねもぷらす

ふぁいんでぃんぐねもの日記。プログラミングとか育児とか

下準備(3)

Google App Engine

Google App Engine のブログ

正直、食わず嫌いしてました。環境なんて自分でつくれば良いじゃん、USBメモリは8GBがデフォの時代だ!no perl, no Life だバカヤロー!!
で、Google App Engineって何?というところから発進。

http://www.atmarkit.co.jp/news/200804/08/appengine.html
http://gihyo.jp/dev/serial/01/gae/0001
http://itpro.nikkeibp.co.jp/article/COLUMN/20080529/305017/
http://builder.japan.zdnet.com/sp/google-app-engine/story/0,3800086196,20371257,00.htm

斜め読みした結果がこれだよ。

  • It's Free!*1
  • WebアプリケーションをGoogleインフラ上で動かすサービス。
  • Googleアカウントがあれば利用可能。
  • 使える開発言語は Python のみ(2009.03現在)
  • google の用意する SDK を使えば開発&デプロイが簡単。
  • 500MBのストレージが利用出来る。
  • 10GBの上/下帯域、200万MHzのCPU…十分なスペックが許容されている。
  • HTTPリクエスト65万回、URLフェッチAPI呼び出し16万回まで…十分な負荷をかけれる。

先ずは開発環境を入手

Google App Engine SDKをダウンロード。
http://code.google.com/intl/ja/appengine/downloads.html

Mac OS X なので GoogleAppEngineLauncher-1.1.0.dmg をダウソロード、ダブルクリックして出来たGoogleAppEngineLauncher.app をアプリケーションディレクトリへドラック&ドロップ。
そして実行するとこんな感じに。

ローカルでアプリを開発するんだ

Hello, Worldで十分です。
いろいろ参考にさせて頂いた結果、以下を作成するのが手っ取り早そうなのでパクったインスパイアです。まじリスペクトしました。

マヅは GoogleAppEngineLuncher で左下のプラスボタンをポチっとして Application を追加します。
ここで指定したディレクトリ以下に、次のファイルが作成されました。

  • [変更] app.yaml(定義ファイル)
application: helloworld
version: 1
runtime: python
api_version: 1

handlers:
- url: /.*
  script: helloworld.py
  • [追加] helloworld.py(Viewみたいなもん)
print 'Content-Type: text/plain'
print ''
print 'Hello, world!'


GoogleAppEngineLuncher で Run をクリック。サーバが起動するので、Browse をクリックすると http://localhost:8080/ を開いてくれる。

やったー、ぼくにもできたお( ^ω^)


いざ、利用登録

Googleアカウントにログインし、スタートページを開く。
http://appengine.google.com/start


上記画面で [Create an Application] ボタンを押すと、「Verify Your Account by SMS」なる画面が表示される。
携帯のキャリア*2とアカウント*3を入力するテキストボックスがあるので、連絡がとれるモノを入力してSend。


すると「An Authentication Code Has Been Sent to **********@pdx.ne.jp」という画面に切り替わる。
入力したメアドに Google App Engine Code が送信されるので、こいつを入力してあげる。
ちなみに今回試したときのコードは7桁の数値でした。


いよいよアプリ作成画面「Create an Application」が表示されるので、アプリを提供するドメイン名とアプリ名を入力して、利用規約に同意の上 Save を実行。


「Application Registered Successfully」おめでとう、君のアプリを公開する設定はすべて完了した。
Appをデプロイし、Google App Engine の世界を楽しんでくれ!
Enjoy!!




閑話休題

ここまででApp公開の準備は整ったようです。
で、作成完了画面では以下の3つが並んでました。

  • View the dashboard for App. … いわゆる管理画面?
  • Use appcfg.py to upload and deploy your application code. … メイン設定ファイルのこと??
  • Add developers to collaborate on this application. … 共同開発者の設定???

自分の作ったドメインのURLが何処にも載ってない。まぁエラーになるだけですがとりあえずアクセスしてみた。
http://noperlnolife.appspot.com/

フツーに404 Not Foundでした^^


じゃ、デプロイするか。

GoogleAppEngineLuncherからなら Deploy ボタンをクリック、コマンドラインからなら以下を実行。

$ appcfg.py update helloworld/

どちらの場合もメールアドレスとパスワードを聞かれるので入力。


これでアッサリ OK!…かと思ったら、更新出来ないと怒られた…

…
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
HTTPError: HTTP Error 403: Forbidden
Error 403: --- begin server output ---
You do not have permission to modify this app (app_id=u'helloworld').
--- end server output ---

なんだ、これ??

勘違いorz

解決。以下でしたー
http://groups.google.com/group/google-appengine/browse_thread/thread/9d877e0c067f9864


ようは上の方で単なるドメインだと思っていたモノがアプリケーション名になるので、app.yaml の application: を合わせなきゃダメだよ、という話。

application: noperlnolife
version: 1
runtime: python
api_version: 1

handlers:
- url: /.*
  script: helloworld.py

よし、準備完了だべさ〜


まとめ

Webサーバ立ち上げるまでの手間がごっそり省ける。
Python のお勉強には超ちょうどよさげ。

*1:俺は自由だ

*2:メールアドレス@の後ろの文字列

*3:メールアドレス@の前の文字列