いっしきまさひこBLOG

AI・機械学習関連、Web制作関連、プログラミング関連、旅行記録などなど。一色政彦。

初めてのGoogle App Engineアプリケーション「Hello World!」の開発

では、実際に独自の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: helloworld

version: 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_appengine

dev_appserver.py demos\helloworld\

すると、次のようにWebアプリケーションが実行されます。

googleappengine03.gif

【目次】「Google App Engineアプリケーション開発入門」―――

Google App Engine環境の準備

Google App Engine SDKの内容

初めてのGoogle App Engine アプリケーションの実行

Google App Engine アプリケーションの実行の仕組み

■初めてのGoogle App Engineアプリケーション「Hello World!」の開発

Google App Engine アプリケーションのデバッグ

Google App Engine の webapp Frameworkの利用