一番簡単なチュートリアルをやってみた。ちょっとはまったのでメモ。
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 hamlUncomment/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 .
まとめ
いくつかはまったところがあったけど、なんとかアップロードすることはできました。とりあえず感があるので、他にやり方があれば教えてください。以上!