GAEカテゴリを作りました

Pythonカテゴリでも良かったんでしょうが、何となく何となしに新しいものにカテゴライズしました。
カテゴリ作っただけで更新しないパターンは考慮してません。
あしからず。


そういうことで。
GAE(ぎゃえ)こと、Google App Engineをいじり始めました。
いよいよ、競技開始です。
何言ってるかさっぱりだーという人は、龍巻閃で受け流してください(ただし、暴力反対です)。
今日書くのは、とりあえずアップロードまでの簡単な作業記録になります。とは言え、本家本元正当血統の血統書付きチュートリアルを読んだだけで出来ることなので、ほんとにただの記録です。
もはや、ただの落書きです。
それではそれでは、そんな落書きを読んでくださる方は、続けてどうぞ。

GAEにアプリケーションをアップロードしよう:

と思ったから、わざわざGoogleアカウントまで作った訳ですが。
さて、まあ本店のチュートリアルではプログラミング学習ではもはやお約束と言ってもいい、helloworldプログラムを作っていますが、全くその通りにはしてません
同じことをしてますが、内容が少し違うのでご注意を。


まず、僕はUbuntuPython使って開発する気ですが、Ubuntuに入っているPythonのバージョンは2.6です。Googleでは2.5を推奨してますが、「え?同じ2.x系列なら余裕じゃね?」と安易にそのまま使ってます。
まず、この点をご了承ください。必要によってバージョンを調整するかもしれませんが、それはまたそうなったときに追記します。


では、やったことを列挙します。

  1. SDKをダウンロード
  2. プログラム書き書き
  3. アップロード

大雑把過ぎますね。でも、それだけ簡単に出来てしまうとも言えます。
では、順を追って記録していきます。

SDKをダウンロード:

Google様からSDKをダウンロードします。
僕の場合は、Linux(Ubuntu)でのPythonによる開発なので、『Google App Engine SDK for Python』のLinux対応のSDKをダウンロードします。
ちなみに、この場合の配布形式はzipです。形式は窓がmsi、りんごがdmgです。
そんなことはさておいて、早速展開してみましょう。
どうでもいいですが、季節柄、時事ネタというものですが、クリスマスプレゼントの包装って必要ですか?最後には結局ビリビリに破られてしまうのに……。
まあ、幼少時代の僕が綺麗に外していたかと言うと、案外綺麗にはいだものを取っておくタイプでした。
最終的にはゴミになるんですが、ダンボールでもなんでも、何か作れそうとか思ってとっておく習性があったんですよ。
それはもうプリンのカップだって、コレクションしてるみたいにとってました。
でも、最終的に作ったものも結局ゴミなんです。
ただ、それは作る過程がおもしろいのであって、出来上がるものは気にならないだけなんです。
そういうことが出来るのも、時間や利益をあまり意識しない子供の間だけなのかもしれませんが。
そんな訳で。
どうでもいい話、終了。


以下、Ubuntuにおいての開発記録とお考えください。
さて、展開するとそこに現れるのは、google_appengineディレクトリ。
夢がいっぱい詰まってます。
ここに、一通りのツールが揃っていて、何かのインストールなどは不要でした。
ダウンロードしたのは、これ1式のみです。

プログラム書き書き:

で。
チュートリアルに沿って進めるのなら、ここでhelloworldディレクトリ作るんですが、僕は違う名前でディレクトリを作りました。
どんな構造にしているかと言うと、

~/gae-works/ --- google_appengine/
             |--project/ --- warehouse/ --- index.py
                                        |-- app.yaml

みたいな感じです。
要するに、チュートリアルで言うhelloworldがwarehouseに対応するように、色々ファイル名が違うだけということです。


んで、それぞれのファイルの中身はと言うと、index.pyは、

print 'Content-Type: text/plain'
print ''
print 'This is the test.'
print 'Sorry, a service will be available soon.'

んで、app.yamlは、

application: <application-ID>
version: 1
runtime: python
api_version: 1

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

にしました。
各記述の詳細は大元に譲ることにして、こんな感じで書きました。
ここで、app.yaml中のですが、これはアップロードの際に登録する識別子のようなものです。
たとえばGoogleが無料で貸してくれるappspot.comを使うのであれば、サイトのURLは以下のようになります。

http://<application-ID>.appspot.com

アップロードの詳細は後述しますが、この時登録したIDによってアプリケーションを識別するので、ここを合わせないと困ったことになります
最後は、アップロードするだけです。

アップロード:

既にGAEのアカウントはある体で話を進めます。
アップロード自体はコマンド一発で終了です。
僕の場合なら、上記のようなディレクトリ構成にて、

% ./google_appengine/appcfg.py update project/warehouse/

とするだけでした。
まあ、ユーザー認証(アドレスとパスワードの入力)はありますが。
アップロードに成功すれば、晴れてweb上にアプリケーションが晒されます。
ページのURLは前述のとおり、

http://<application-ID>.appspot.com

です。

結論:

開発環境が2.6.6でも、凝ったことしなきゃ大丈夫そうだ。