PlayFramework
- 【意訳】Heroku上でPlayFramework + Scalaアプリケーションを実行する (12 Aug 2012 | Tags:
【意訳】Heroku上でPlayFramework + Scalaアプリケーションを実行する 【意訳】Heroku上でPlayFramework + Scalaアプリケーションを実行する
誤訳・誤植等ありましたら、@modal_soulまでリプライいただけるとありがたいです。
ScalaでPlay Frameworkアプリを構築するのが最近流行っているようです。理由としては、これまでのJVMベースのWebアプリよりも簡単に構築、デプロイできることです。ScalaでPlayアプリの構築とHerokuへのデプロイをやってみましょう。
Step1) Play Frameworkをインストールします(バージョン1.2.3以上をインストールしてください)。
Step2) Play Scalaモジュールをインストールします。
play install scala
Step3) ScalaサポートしたPlayアプリを作成します。
play new playwithscala --with scala
Step4) アプリケーションをスタートします。
cd playwithscala play run
Step5) ブラウザでアプリケーションを開きます。
http://localhost:9000
とても簡単ですね。Heroku上にデプロイする前に、カスタムmodel, view, controllerを追加してもう少し味付けしてみましょう。
Step1) app/models/Widget.scalaを新規作成して、以下を記述します。
package models case class Widget(id: Int, name: String)
Step2) app/views/Widget/list.scala.htmlファイルを新規作成して、以下を記述します。
@(widgets: Vector[models.Widget]) <!DOCTYPE html> <html> <body> @widgets.map { widget => Widget @widget.id = @widget.name</br> } </body> </html>
Step3) app/controllers/WidgetController.scalaを新規作成して、以下を記述します。
package controllers import play._ import play.mvc._ object WidgetController extends Controller { import views.Widget._ import models.Widget def list = { val widget1 = Widget(1, "The first Widget") val widget2 = Widget(2, "A really special Widget") val widget3 = Widget(3, "Just another Widget") html.list(Vector(widget1, widget2, widget3)) } }
Step4) 以下のURLを表示して、動きを確認しましょう。
http://localhost:9000/WidgetController/list
動きましたね。それにサーバーのリロードも不要でした。URLを少しきれいにしましょう。conf/routeファイルを修正して、”Application.index”を”WidgetController.list”へ変更します。
GET / WidgetController.list
簡単にできましたが、ついでに友達にも見せたいですね。Herokuへデプロイしましょう。
Step1) Linux, MacもしくはWindowsに、Herokuコマンドクライアントをインストールします。
Step2) コマンドラインからHerokuへログインします。
heroku auth:login
Step3) Herokuは、アプリケーションのデプロイにgitを使うので、.gitignoreファイルを作成して、以下を記述します。
/modules /tmp
Step4) gitリポジトリを作成して、ファイルを追加し、コミットします。
git init git add . git commit -m init
Step5) Herokuにアプリケーションを新規作成します。
heroku create -s cedar
これで、Heroku上に新しいアプリケーションを規定し、アプリケーションへのランダムな名前/のURLを割り当てます。
Step6) アプリケーションをデプロイします。
git push heroku master
アプリケーションがアセンブルされ、Heroku上にデプロイされます。
Step7) ブラウザでアプリケーションを開きます。
heroku open
ジャジャーン!これでPlay + Scala アプリがクラウド上で実行されました。
JavaOneで、これをBill Venners(ScalaTestの作者)に見せたら、scalatest.orgのWebサイト(Play + Scalaのアプリ)をHerokuへ移行してくれました。クール!
何か質問あれば、教えてください。
LinkLatest post:
- OpenWhiskのScala sbtプロジェクトのgiter8テンプレートを作った
- OpenWhisk+Scalaで作るServerless Architectureとっかかり
- BluemixにPlayframeworkアプリケーションをデプロイする
- sbt、Giter8を統合するってよ
- Scala 2.12.0でSAM型
Recent Books: