Google App Engine事始め

スポンサーリンク
スポンサーリンク

スポンサードリンク

cronサービスを1分間隔で動かしたい。
レンタル鯖やフリーのcronサービスもあるのだが、
最短実行間隔が5分や10分、
酷いところになると最短1時間というとてもニーズに
答えられそうにもないものであった。

1分に1回、外部のphpをコールさせるためだけに
有料のwebcronサービスを使うのもばかばかしいので、
1分間隔で動かせるフリーのcronサービスを探していたら、
Google App Engineが、最短1分間隔でcronを動かすことが
出来るらしい。

そろそろGoogle App Engineを覚えてみたい、
そう思っていた頃でもあったのでさっそくテストがてら、
導入からGoogle App Engine上でHell Worldを表示させるまでを試してみた。

Google App Engine についてまずは概要をさらっと読む
http://code.google.com/intl/ja/appengine/docs/whatisgoogleappengine.html

とりあえずはココでアプリケーション用の受け皿を作れと言うことらしい。
http://appengine.google.com/

Create an Applicationをクリックする。
[ ].appspot.com という型式になるらしい。

実験用と言うことで、debugworks.appspot.com
というアプリケーションを登録した。

次にGoogle App Engine SDK のダウンロードをする。
http://code.google.com/intl/ja/appengine/downloads.html
Windowsなので、GoogleAppEngine_1.2.0.msi
http://googleappengine.googlecode.com/files/GoogleAppEngine_1.2.0.msi
を選択した。

セットアップすると、pathが通される。

ここから先はDOS窓を開いて作業。

C:\>CD C:\Program Files\Google\google_appengine

として、フォルダを移動。
ついでにSETコマンドを叩いて,pathが通っていることを確認。

C:\Program Files\Google\google_appengine>path
PATH=c:\php;c:\mecab\bin;C:\usr\local\bin;C:\WINDOWS\system32;C:\WINDOWS;
C:\WINDOWS\System32\Wbem;C:\Program Files\Google\google_appengine\

一番最後にC:\Program Files\Google\google_appengine\ が
追加されていることを確認した。

http://code.google.com/intl/ja/appengine/docs/python/gettingstarted/

ドキュメントを読んでいると,
何かをするには,appcfg.py を実行すればいいらしい。
おもむろに実行。

C:\Program Files\Google\google_appengine>appcfg.py

ダイアログが出て,

Windows
このファイルを開けません:
ファイル: appcfg.py
このファイルを開くには、作成元のプログラム名が必要です。
インターネットで自動的にプログラムを検索するか、
又はコンピュータにあるプログラム一覧から手動で選択してください。

って出てきた。

ああ、Pythonを自動的にインストールしてくれる訳じゃないのね・・・。
インストーラーがmsiだから最近流行の
開発環境全部入れてくれると思って油断してたw

Google App Engine SDK for Pythonが対応しているのは、バージョン2.5とのこと。
Pythonのダウンロードページに行く。
http://www.python.org/download/

ホームページへ行くと、2.6.2と3.1.1がリリースされている。
2.5は無いものの,あまりバージョン上げすぎて
Google App Engine SDKが対応していなくて苦労するのも
嫌だったので2.6.2をダウンロードしてインストール。

先ほどのDOS窓をを閉じて,再度

C:\>CD C:\Program Files\Google\google_appengine

C:\Program Files\Google\google_appengine>appcfg.py
C:\Program Files\Google\google_appengine\appcfg.py:40: DeprecationWarning: the sha module is deprecated; use the hashlib module in
stead
DIR_PATH,
Usage: appcfg.py [options]

Action must be one of:
cron_info: Display information about cron jobs.
help: Print help for a specific action.
request_logs: Write request logs in Apache common log format.
rollback: Rollback an in-progress update.
update: Create or update an app version.
update_cron: Update application cron definitions.
update_indexes: Update application indexes.
vacuum_indexes: Delete unused indexes from application.
Use ‘help ‘ for a detailed description.

Options:
-h, –help Show the help message and exit.
-q, –quiet Print errors only.
-v, –verbose Print info level logs.
–noisy Print all logs.
-s SERVER, –server=SERVER
The server to connect to.
-e EMAIL, –email=EMAIL
The username to use. Will prompt if omitted.
-H HOST, –host=HOST Overrides the Host header sent with all RPCs.
–no_cookies Do not save authentication cookies to local disk.
–passin Read the login password from stdin.
-f, –force Force deletion without being prompted.
–num_runs=NUM_RUNS Number of runs of each cron job to displayDefault is 5
-S SIZE, –max_size=SIZE
Maximum size of a file to upload.
-n NUM_DAYS, –num_days=NUM_DAYS
Number of days worth of log data to get. The cut-off
point is midnight UTC. Use 0 to get all available
logs. Default is 1, unless –append is also given;
then the default is 0.
-a, –append Append to existing file.
–severity=SEVERITY Severity of app-level log messages to get. The range
is 0 (DEBUG) through 4 (CRITICAL). If omitted, only
request logs are returned.

何かワーニングが出て居る気がするが、今は気にする必要はない。
どんな言語でも,最初はHello worldから。ということで、
チュートリアルを見てHello worldを表示するアプリケーションを作ってみる。
http://code.google.com/intl/ja/appengine/docs/python/gettingstarted/helloworld.html
以下のファイルを用意する。

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

app.yaml
application: helloworld
version: 1
runtime: python
api_version: 1

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

以下のフォルダに移動し,次のコマンドで起動する

C:\Program Files\Google\google_appengine>dev_appserver.py helloworld/
INFO 2009-09-25 00:45:35,453 appengine_rpc.py] Server: appengine.google.com
Allow dev_appserver to check for updates on startup? (Y/n):

もちろんYで起動する。

ブラウザを開いて http://localhost:8080 を表示させてみると
Hello, world!が表示されている。

アプリケーションのアップロード
さっそくアップロードしてみる。

その前に、app.yaml ファイルを編集し、application: 設定の値を、
helloworld から登録したアプリケーション ID に変更しろとのこと。

書き換えたら以下のコマンドでアップロード。

C:\Program Files\Google\google_appengine>appcfg.py update helloworld/
初回のみメアドとパスワードを聞かれるので入力。
Email: gappengine@gmail.com
Password for gappengine@gmail.com:
Scanning files on local disk.
Initiating update.
Cloning 3 application files.
Deploying new version.
Checking if new version is ready to serve.
Will check again in 1 seconds.
Checking if new version is ready to serve.
Closing update: new version is ready to start serving.
Uploading index definitions.

アップロード完了したので見てみる。
http://debugworks.appspot.com/

おお?!なんか動いてる。
やりたいことを出来るまでが大変だけど、手順を覚えて活用したい。

スポンサードリンク

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする