§CloudFoundry / AppFogへのデプロイ
§前提条件
無料のCloud Foundryアカウントにサインアップし、以下のコマンドを使用してCloud FoundryコマンドラインツールVMCを最新バージョン(0.3.18以上)にインストールまたはアップデートしてください。
gem install vmc
§アプリケーションのビルド
playプロンプトでdist
コマンドを入力して、アプリをパッケージ化します。
§アプリケーションのデプロイ
作成されたzipファイルをVMC pushコマンドでCloud Foundryにデプロイします。データベースサービスを作成することを選択した場合、Cloud Foundryはアプリケーションの起動時にデータベースの進化を自動的に適用します。
yourapp$ vmc push --path=dist/yourapp-1.0.zip
Application Name: yourapp
Detected a Play Framework Application, is this correct? [Yn]:
Application Deployed URL [yourapp.cloudfoundry.com]:
Memory reservation (128M, 256M, 512M, 1G, 2G) [256M]:
How many instances? [1]:
Create services to bind to 'yourapp'? [yN]: y
1: mongodb
2: mysql
3: postgresql
4: rabbitmq
5: redis
What kind of service?: 3
Specify the name of the service [postgresql-38199]: your-db
Create another? [yN]:
Would you like to save this configuration? [yN]: y
Manifest written to manifest.yml.
Creating Application: OK
Creating Service [your-db]: OK
Binding Service [your-db]: OK
Uploading Application:
Checking for available resources: OK
Processing resources: OK
Packing application: OK
Uploading (186K): OK
Push Status: OK
Staging Application 'yourapp': OK
Starting Application 'yourapp': OK
§サービスの操作
§自動再構成
Cloud Foundryは、自動再構成と呼ばれるメカニズムを使用して、Playアプリケーションをリレーショナルデータベースサービスに自動的に接続します。Play設定に単一のデータベース設定(例:default
)が見つかり、単一のデータベースサービスインスタンスがアプリケーションにバインドされている場合、Cloud Foundryは設定内の接続プロパティを自動的にオーバーライドして、アプリケーションにバインドされているPostgreSQLまたはMySQLサービスをポイントします。
これは、シンプルなアプリを迅速に起動して実行するための優れた方法です。ただし、アプリケーションに使用しているデータベースのタイプに固有のSQLが含まれている可能性があります。このような場合、またはアプリが複数のサービスにバインドする必要がある場合は、自動再構成を回避し、サービス接続プロパティを明示的に指定することを選択できます。
§Cloud Foundryサービスへの接続
Cloud Foundryは常に、VCAP_SERVICES環境変数を介してJSON形式ですべてのサービス接続情報をアプリケーションに提供します。ただし、接続情報は、Play設定で使用できる一連のプロパティとしても利用できます。tasks-db
という名前のPostgreSQLサービスにapplication.confファイル内から接続する例を次に示します。
db.default.driver=${?cloud.services.tasks-db.connection.driver}
db.default.url=${?cloud.services.tasks-db.connection.url}
db.default.password=${?cloud.services.tasks-db.connection.password}
db.default.username=${?cloud.services.tasks-db.connection.username}
この情報は、NoSQLやメッセージングサービスを含むすべてのタイプのサービスで利用できます。また、あるタイプのサービス(例:postgresql)が1つしかない場合は、以下の例のように、名前ではなくタイプだけでそのサービスを参照できます。
db.default.driver=${?cloud.services.postgresql.connection.driver}
db.default.url=${?cloud.services.postgresql.connection.url}
db.default.password=${?cloud.services.postgresql.connection.password}
db.default.username=${?cloud.services.postgresql.connection.username}
これらのプロパティは別のファイル(例:cloud.conf
)に保存し、Cloud Foundryのディストリビューションをビルドするときにのみ含めることをお勧めします。-Dconfig.file
を使用して、play dist
に代替設定ファイルを指定できます。
§自動再構成のオプトアウト
上記のプロパティを使用すると、自動的にオプトアウトされます。明示的にオプトアウトするには、アプリケーションのconfディレクトリに「cloudfoundry.properties」という名前のファイルを含め、エントリautoconfig=false
を追加します。
このドキュメントに誤りを見つけましたか?このページのソースコードはこちらにあります。ドキュメントガイドラインを読んだ後、プルリクエストを送信してください。質問やアドバイスがあれば、コミュニティフォーラムにアクセスして、コミュニティとの会話を開始してください。