では、実際に独自のGoogle App Engineアプリケーションを作成してみましょう。
「C:\Program Files\Google\google_appengine\demos」(=「初めてのGoogle App Engine アプリケーションの実行」で紹介した「guestbook」Demoアプリと同じフォルダ)内に「helloworld」というフォルダを作成して、ここに初めてのプログラム開発の定番「Hello World!」を作成してみましょう。
「Google App Engine アプリケーションの実行の仕組み」で示したように、Google App Engine アプリケーションには最低2つのファイルが必要です。プログラム(.pyファイル)は「helloworld.py」としましょう。アプリケーションの構成ファイルは「app.yaml」です。
helloworld.py(プログラム)app.yaml(構成ファイル)
まず、「Hello, Google App Engine アプリケーション World!」と表示するプログラムをPython言語で記述します。HTTPリクエストへの応答なので、標準出力ストリームに「Content-Type」(=データ形式)などのHTTPヘッダ情報とコンテンツを書き込みます。具体的には次のようなコードになります。文字コードはUTF-8をお勧めします(Shift-JISでも構いません)。
print 'Content-Type: text/plain'print ''
print 'Hello, Google App Engine アプリケーション World!'
次に、app.yamlファイルには次のように記述します。
application: helloworldversion: 1
runtime: python
api_version: 1
handlers:
- url: /.*
script: helloworld.py
YAMLでは識別子とそれに対する値を「<識別子>: <値>」というフォーマットで記述します。「application: helloworld」という記述は、application識別子の値が「helloworld」であることを示します。それぞれの識別子について簡単に説明しておきましょう。
application識別子:アプリケーション名。Google App Engineアプリケーションとして展開するには、唯一の名前を付ける必要がありますが、ここではローカル環境で開発するだけなので「helloworld」としました。
version識別子:アプリケーションのバージョン番号。アプリケーションを更新するたびにつけ直します。きちんと更新してれいば、管理者コンソールで前のバージョンにロールバックしたりできます。
runtime識別子:言語のランタイム名。現時点では「Python」を指定します。将来、ほかの言語のランタイムも追加される予定です。
api_version識別子:Google App Engine APIのバージョン。現時点では「1」を指定します。
handlers識別子:どのURLへのリクエストに対してはどのプログラム(.pyファイル)が応答するかを定義します。その書式は次のとおりです(「- 」の記述を忘れないように注意してください)。
- url: <リクエストされるURL>script: <応答するプログラム(.pyファイル)>
この2行を繰り返すことで、複数のURLへのリクエストに対する応答プログラムを設定できます。
URLの定義では正規表現が使えます。たとえばすべてのURLを指定に応答するには「/.*」と指定します。前述のコードは、「すべてのURLへのリクエストをhelloworld.pyファイルのプログラムで応答すること」を示しています。
以上でプログラムの作成は完了です。
それでは「初めてのGoogle App Engine アプリケーションの実行」で紹介した方法で実行してみましょう。今回は次の2行のコマンドを実行します。
cd C:\Program Files\Google\google_appenginedev_appserver.py demos\helloworld\
すると、次のようにWebアプリケーションが実行されます。
【目次】「Google App Engineアプリケーション開発入門」―――
■初めてのGoogle App Engine アプリケーションの実行
■Google App Engine アプリケーションの実行の仕組み
■初めてのGoogle App Engineアプリケーション「Hello World!」の開発