2011年9月6日火曜日

Google App Engine はじめようかな? - Hello, World!

Hello, World! を実行してみる。

簡単なリクエスト ハンドラの作成

helloworld という名前のディレクトリを作成します。アプリケーションのすべてのファイルは、このディレクトリに配置します。

Hello, World! - Google App Engine - Google Code

どこにだろう?
とりあえずデスクトップに作ってみる。

helloworld ディレクトリで、helloworld.py という名前のファイルを作成し、次のようなコンテンツを入れます。

print 'Content-Type: text/plain'
print ''
print 'Hello, world!'

Hello, World! - Google App Engine - Google Code

helloworld.py という名前で保存してみた。

設定ファイルの作成

App Engine アプリケーションには、app.yaml という名前の設定ファイルがあります。このファイルで最も重要なのは、どのハンドラ スクリプトをどの URL に対して使用するかが記述されていることです。

helloworld ディレクトリで、app.yaml という名前のファイルを作成し、次のようなコンテンツを入れます。

application: helloworld
version: 1
runtime: python
api_version: 1

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

Hello, World! - Google App Engine - Google Code

app.yaml という名前で保存してみた。

アプリケーションのテスト

ハンドラ スクリプトと設定ファイルを使用して、各 URL にハンドラをマッピングすれば、アプリケーションは完成です。App Engine SDK に含まれる Web サーバーでこれをテストすることができます。

次のコマンドで helloworld ディレクトリまでのパスを指定し、Web サーバーを起動します。

google_appengine/dev_appserver.py helloworld/

Hello, World! - Google App Engine - Google Code

ここで helloworld フォルダを指定するのか……それなら C:\ に移動して……

Command Prompt
C:\helloworld>dir /b
app.yaml
helloworld.py

C:\helloworld>

…… PATH は通っているみたいだから……

Command Prompt
C:\helloworld>C:\helloworld>PATH
PATH=C:\WINDOWS\system32;C:\WINDOWS;C:\Program Files\Google\google_appengine\

C:\helloworld>dev_appserver.py .

……で、起動すると Warning とプロンプトが表示された。

Command Prompt
Warning: You are using a Python runtime (2.7) that is more recent than the produ
ction runtime environment (2.5). Your application may use features that are not
available in the production environment and may not work correctly when deployed
 to production.
INFO     2011-09-06 07:13:05,358 appengine_rpc.py:159] Server: appengine.google.
com
Allow dev_appserver to check for updates on startup? (Y/n):

Python が 2.5 じゃ無いから、実際の環境では使えない機能あって、正しく動作しないかもしれないということらしいけど、とりあえず [Enter] キー。

いろいろメッセージが表示されて、PIL モジュールが import できないとか出ているけど、ウェブサーバが起動できたようなので、

Command Prompt
 :
 :
 :
INFO     2011-09-06 07:48:14,937 dev_appserver_multiprocess.py:637] Running appl
ication helloworld on port 8080: http://localhost:8080

ウェブブラウザで http://localhost:8080/ にアクセスしてみると、 Hello, World と表示されたから、うまくいったみたい。

追加参照

app.yaml は、おもに URL に対するハンドラを記述するファイルなので細かい設定は下のページを参照