2008年4月13日日曜日

Google App Engineでハマらない為に

Google App Engine が限定的に公開され始めましたね。私も招待してもらったので試してみました。

巷にいろいろ情報が出ているので、このBlogでは、まだ(簡単すぎて?)誰も書いてないこと+書いてあるけどハマりそうな点について書いてみます。


App Engine で作ったアプリケーションは、デフォルトでは http://your_id.appspot.com という形で公開されます。
例えば、App Engine用に 『gaooo』 という名前を登録したとします(この名前のことを Application Identifier と言うそうです)。その場合、あなたのアプリケーションには http://gaooo.appspot.com というURLが割り振られることになります。


たぶん、最初に helloworld を作る人が多いと思うのですが、アプリケーションをGoogleのサーバにアップロードしようとしたときに

> google_appengine\appcfg.py update helloworld/
Loaded authentication cookies from C:\Users\yourloginname\.appcfg_cookies
Scanning files on local disk.
Initiating update.
2008-04-12 00:00:00,000 ERROR appcfg.py:1070 An unexpected error occurred. Aborting.
Error 403: --- begin server output ---
You do not have permission to modify this app.
--- end server output ---

みたいなエラーが出てハマるかもしれません。
これはおそらく、app.yaml の中で
application: helloworld
と書いている可能性があります。たぶん、helloworld.py をアップロードしようとしているので、.py を取った 『helloworld』 をなんとなく書いた・・とか。<Javaやってる人とか・・

正解は、application には Application Identifier を記述します。
上記の例を使うと
application: gaooo
となる感じです。


あと、Pythonコードの中で日本語を使う場合、UTF-8でファイルをセーブします。
更にプログラムの先頭に
#!-*- coding:utf-8 -*-
と書いて
Content-Type も 'text/plain; charset=UTF-8'
にします。


Windowsを使っている場合、中にはマニュアルが Unix系OS を例にした記述があるとことにつまづいて appcfg.py をどうやったら起動できるのか分からなくなる人もいるかもと思いました。
例えば、コマンドプロンプトを起動直後にマニュアルにあるまま打ち込んで
C:\Users\watashi> google_appengine/appcfg.py update helloworld/
としていたり・・・

appcfg.py の起動は、パスが通っていればそのまま
C:\Users\watashi> appcfg.py
で良さそうです。
通ってなければ
C:\Users\watashi> cd "\Program Files\Google"
C:\Program Files\Google>
google_appengine\appcfg.py
と、普通にWindowsの作法で起動。ちなみに、 google_appengine と appcfg.py の間は / じゃなくて \ ですね(^^; マニュアルはUnix系OSの例で書いてあるので、そのままコピペするとハマるかも・・

『update』 の後の helloworld/ は、Pythonの世界なので、
もし、helloworldフォルダが『c:\usr\src\helloworld』にあるとしたら
C:\Program Files\Google> google_appengine\appcfg.py update /usr/src/helloworld/
と、スラッシュで区切りながら書けば良さそうです。

0 件のコメント: