GAE で Hello, world!

クラウドってよく聞くけど、なんだかわからずモヤモヤしてたので試してみることに。


AmazonとかGoogleとかMicrosoftのやつがあるけど、どれがいいのかな...。

Googleのやつがいちばん簡単そうですな。自宅サーバで何がいやかって、ソフトのインストールとか設定をするのがめんどくさい。そこに楽しみを見いだせない。「この環境でできる範囲でやってください」ってほうが楽。Googleのはそれに近いですな。タダで使えるし。


WindowsPython 2.5をインストール。2.6とか3.0も出ていたけど、チュートリアルには「2.5」と書かれていたのでおとなしく2.5をインストール。続けて、Google App Engine SDKをインストール。どちらもWindows Installerでインストールできるから楽ちんですな。


開発するときに使うのがdev_appserver.pyとappcfg.pyという2つのスクリプト。App Engine SDKをインストールすると、これらのファイルがインストールされてPAHTが通される。dev_appserver.pyを実行してみると、使い方がつらつら表示される。要するに自分が作成したアプリのパスをパラメータで指定すれば、ローカルでhttpサーバが立ち上がるみたい。自分のアプリを c:\projects\gae\helloworld に置いたら「dev_appserver.py c:\projects\gae\helloworld」とすれば良いみたいですな。

次に「Hello, world!」を表示するだけのアプリを作る。チュートリアルからコピペしてhelloworld.pyとapp.yamlを作る。そして、dev_appserver.py を実行。ブラウザで localhost:8080/ を見るとあっさり「Hello, world!」が表示された。


次にサーバへのアップロードを試してみる。appcfg.py を使えばいいみたい。appcfg.pyを実行すると使い方が表示される。アップロードは「appcfg.py update [directory]」みたいな。
ただ、そのまま実行するとエラーですな。サーバ側の準備がいるみたい。サイトでapplication-idをゲットしてapp.yamlのapplicationに設定。application-idをゲットするときにSMS認証とかいうのがあった。携帯のキャリアとメールアドレスを指定すると認証コードが携帯にメールで届く。ここ数日迷惑メールの量がはんぱなくて設定を厳しくしたばかりなのでメールが届くか不安だったが問題なく届いた。
これで update がうまくいった。今度はlocalhostじゃなくて(application-id).appspot.comにアクセスしてHello, world!が表示された。イヤッホウ。


いやいやいや、これが実際に自分がアップロードした「Hello, world!」かどうかわからんぞと思ったので「print 'てててててすと'」を追加してみたら問題発生。ああ、文字コードだ、あれをどっかに宣言しとかないとだめなんだ...と思ってググる...。

ファイルの先頭に「#!-*- coding:utf-8 -*-」を入れると...でた。


とりあえずここまでやってみて思ったんだけど、簡単でとっつきやすいですな。
Pythonをまるで知らないのでとりあえず本買ってみますかね...。