2011年11月16日水曜日

Google App Engine 1.6.0 SDK

Google App Engine SDK 1.6.0がリリースされた。待望のPython 2.7対応。ようやく2.5から解放された。

しかし、そのままのコードではPython 2.7を使うことはできない。2.7に移行するための作業が必要である。

移行手順については Nick's Blog にMigrating to Python 2.7, part 1: Threadsafe が記述されている。(part2はこちら)

以下 python 2.7 を使う為のメモ。

app.yaml は以下のように変更する。

application: yourappname
version: 1
runtime: python27
api_version: 1
threadsafe: true

handlers:
- url: /
  script: main.app

runtime行にpython27と明示する。threadsafe行にスレッドセーフであればtrueと書く。同じインスタンスで同時に、つまりパラレルに実行される。falseの場合は、シリアルに実行される。Hello, World!のページを参考。

handlers:のscript行、今までは拡張子 .py を記述していたが、ここを任意の文字列に変更する。ここでは .app とした。 .app としても作成するファイルは依然として main.py であることに注意する。

スクリプト側ではrun_wsgi_appを呼び出す必要は無くなった。app.yamlで拡張子部に指定した名前の変数にwebapp2.WSGIApplicationの戻り値を代入する。

スレッドのロックはthreading.Lock()でロックを取得しておき、withを使う。

0 コメント:

コメントを投稿