1 of 19

Google App EngineでGrails!

-Grailsを無料クラウドで-

@genzouw

2 of 19

概要

  • Google App Engineを取り巻く環境
  • Quick Start
    • アカウント取得
    • 環境設定
    • 開発
    • 実行
    • デプロイ
  •  まとめ

3 of 19

Google App Engineを取り巻く環境

  • Google App Engine上でJavaが動作可能に(2009/04)
  • Groovy 1.6.3リリース(2009/05)
  • Grails 1.1.1 リリース(2009/05)
    • Google App Engine Pluginが使用可能に
  • Google App Engine SDK for Java 1.2.1 リリース(2009/05/15)

4 of 19

Google App Engineを取り巻く環境

動作環境、各種開発環境が整ってきた!�今こそGoogle App Engine上でGrailsを!

5 of 19

Quick Start

  • 開発環境
    • アカウント取得
      • http://appengine.google.com/ 
        • 既にアカウントを持っている場合はログイン可能 
        • 持っていない場合にはアカウントを作成

6 of 19

Quick Start

  • 開発環境
    • アカウント取得
      • 「Create an Application」にてアプリケーションを作成しておく。
      • 作成したアプリの名称は後で必要なため覚えておく

7 of 19

Quick Start

  • 開発環境
    • JDK 1.5以上
      • http://java.sun.com/javase/ja/6/download.html
      • 環境変数:JAVA_HOMEの設定
      • 環境変数:PATHに$JAVA_HOME/binを追加

8 of 19

Quick Start

  • 開発環境
    • Groovy 1.6.3
      • http://groovy.codehaus.org/Download 
      • 環境変数:GROOVY_HOMEの設定
      • 環境変数:PATHに$GROOVY_HOME/binを追加

9 of 19

Quick Start

  • 開発環境
    • Grails 1.1.1
      • http://grails.org/Download
      • 環境変数:GRAILS_HOMEの設定
      • 環境変数:PATHに$GRAILS_HOME/binを追加

10 of 19

Quick Start

  • 開発環境
    • Google App Engine SDK for Java 1.2.1

*英語のサイトでしか見つからないことに注意!

      • 環境変数:APPENGINE_HOMEの設定
      • 環境変数:PATHに$APPENGINE_HOME/binを追加

11 of 19

Quick Start

  • 開発(1/4)
    • grailsのプロジェクト作成 
      • grails create-app <app-name>
      • google app engineで作成したアプリ名に
    • プロジェクトフォルダに移動
      • cd <app-name>
    •  Config.groovyファイルを書き換え
      • emacs grails-app/conf/Config.groovy
        • 以下の一行を追加
        • google.appengine.application="<app-name>"

 

12 of 19

Quick Start

  • 開発(2/4)
    • プラグインの追加

            以下のコマンドを順番に実行。

      • grails install-plugin app-engine
        • バージョン:0.8.3
        • JPA/JDO のいずれを使用するか選択
        • ここではJPAを指定した例を取り上げる 
      • grails install-plugin gorm-jpa
        • バージョン:0.3

 

13 of 19

Quick Start

  • 開発(3/4)
    • ドメインクラスを作成

             適当なパッケージを指定してドメイン作成

      • grails create-domain-class com.sample.Book
        • 自動的にJPAのアノテーション設定済みコードが生成される
        • 以下のようなプロパティ追加してもよい
          • String author
          • String isbn
          • Integer price

14 of 19

Quick Start

  • 開発(4/4)
    • ビュー、コントローラークラスを作成
      • grails generate-all com.sample.Book
        • 作成後、コントローラークラスは若干の修正が必要
        • import org.springframework.transaction.support.*�追加
        • save、deleteクロージャの中身を若干変更(gorm-jpaのバグ?)

[save]

if(bookInstance.save()) {

↓↓↓

if(bookInstance.save(flush:true)) {

 

[delete]

bookInstance.delete(flush:true)

↓↓↓

bookInstance.delete()

15 of 19

Quick Start

  • 起動
    • アプリの起動(ローカル)
      • grails app-engine run
        • ブラウザにて動作確認可能

                            http://localhost:8080/

        • HSQLBDで動作

データは以下のファイル(っぽい)

$HOME/.grails/1.1.1/projects/<app-name>/stage/WEB-INF/appengine-generated/local_db.bin

                      

                       

16 of 19

Quick Start

  • デプロイ(1/2)
    • デプロイ準備
      • grails set-version 1 
      • grails app-engine package

17 of 19

Quick Start

  • デプロイ(2/2)
    • デプロイ
      •  $APPENGINE_HOME/bin/appcfg.sh update ./target/war 
      • grails app-engine deploy(二回目以降のデプロイ時はこちらを使用)
      • http://<app_name>.appspot.com/ にアクセス

 

18 of 19

まとめ

  • Google App Engine上でGrails動作はめちゃ簡単だよ!
  • みんなでGoogle App Engine+Grailsで何か公開しよう!
  • Googleに感謝
  • Grails App Engine Pluginの作者に感謝
  • Grails Gorm JPA Pluginの作者に感謝

19 of 19

参考

  • Google App Engine上でGrails動作までの操作をムービーで紹介
  •  Grails AppEngine plugin
    • プラグインの導入説明サイト。英語。
    • http://www.grails.org/plugin/app-engine