$shibayu36->blog;

株式会社はてなでエンジニアをしています。プログラミングや読書のことなどについて書いています。

GAEのBasic Hello Worldをやってみた

一番簡単なチュートリアルをやってみた。ちょっとはまったのでメモ。

InstallEverything

http://code.google.com/p/appengine-jruby/wiki/InstallEverything
必要なものをインストールする。jrubyはいらないとか書いてあるみたい。とりあえず以下のコマンドでruby >= 1.8, gem >=1.2であることを確認しておく。

% ruby -v
% gem -v

その後、google-appengine関係のモジュールを次のコマンドで一括インストール。

% sudo gem install google-appengine

CreateApp

http://code.google.com/p/appengine-jruby/wiki/CreateApp
HelloWorldアプリケーションを作成。簡単に次の手順で作れます。エディタすら使ってないw

% mkdir hello
% cd hello
% echo "run lambda { |env| Rack::Response.new('Hello World').finish }" > config.ru
% appcfg.rb generate_app .

それで最後に以下のコマンドで開発サーバ起動。http://localhost:8080/にアクセスして、Hello Worldが表示されるか確認。

% dev_appserver.rb .

UploadApp

http://code.google.com/p/appengine-jruby/wiki/UploadApp
最後はGAEにアプリケーションをアップロードする。ちょっとはまった。GAEアプリケーションIDを適当に取った後、書いてある通りにconfig.ruに

require 'appengine-rack'
AppEngine::Rack.configure_app(          
    :application => "hello-world",           
    :version => 1)

を追加すると、configure_appって言うモジュールがないよって怒られる。よくわからなかったが、http://code.google.com/p/appengine-jruby/wiki/GettingStartedのコメント欄に下のような感じのことが書いてあった。

If anyone is getting an error when doing the Getting Started tutorial like : "undefined method `configure_app' for AppEngine?::Rack:Module" You can do this to fix it.
You have to: - add yaml gem gem install haml

  • create a app.yaml file example: application: kev1 version: 1 runtime: jruby

Uncomment/remove configure_app from config.ru #AppEngine?::Rack.configure_app( # :application => "kev1", # :version => 1)

とりあえずapp.yamlにアプリケーション名とバージョンを書くように。次のようにしました。もちろんhello-worldの所は自分のアプリケーションidに書き換えてください。

app.yaml

application: hello-world
version: 1
runtime: jruby

そのあと次のコマンドでアップロード。メールアドレスとパスワード聞かれるので、入力すると完了します。

appcfg.rb update .

まとめ

いくつかはまったところがあったけど、なんとかアップロードすることはできました。とりあえず感があるので、他にやり方があれば教えてください。以上!