Translate

2012年7月9日月曜日

SpringアプリをCloud Foundry上に配置するために必要そうな文章を翻訳してみる



Cloud FoundryはPaaSなので
とりあえず動かしてみたいとおもったが、
配置までの文章は一応読んでみないといけないとおもい。

そのあたりの文章を翻訳してみた。
以下、翻訳した文書だが、最後の方はかなり精神力を失っているので
品質は良くないです。

この文章を参考にされる方はat your own riskでお願いします。


翻訳したのは Cloud FoundryのGet Startリンク先にある
 Configuring Applications to Run on Cloud Foundry

 Spring Application Development with Cloud Foundry
です。

Spring開発者がPaaSを利用するために読んでおいた方がいい文書は
本体は後者のリンクです。


Cloud Foundry環境下での動作とそうでないサーバでの動作を
Springアプリケーションコンテキストファイル編集なしで差し替えられる設定など
が書かれています。






Cloud Foundry上で実行するアプリケーションの設定


Cloud Foundryは以下のアプリケーション開発フレームワークをサポートします:

  • Spring
  • Ruby on Rails
  • Ruby and Sinatra
  • Node.js
  • Grails

Cloud Foundry上での実行が可能で、フレームワークを特定し自動的にCloud Foundry上へ配置するツール(vmcとSTS)などのランタイム環境をサポートしています。Cloud Foundry上への配置時に特別な操作は必要ありません。アプリケーションが、データベースなどの、サービスを必要とし、フレームワークのルールに従って開発する場合は、vmcもしくはSTSを使って配置時に必要な設定変更を行うことができます。アプリケーションが必要最小限の設定を行う場合、特に複数サービスが必要な場合の事例があります。

各アプリケーションフレームワークは、以下にあるような、各々個別の設定プロセスが必要です。

※訳者注:Springの章しか翻訳してません..精神力を使い果たしました..

有効なサービスリストについては、Services章を参照して下さい。

Cloud Foundryサービスを使用する設定をアプリケーションに対して実施した後、Cloud Foudryへ配置するときに、標準のCloud Foundryツール(VMC、SpringSourceツールスイート、もしくは Eclipse プラグイン)を使ってこれらのサービスのためのインスタンスを作成しアプリケーションに割り当てます。Deploying Applications章を参照して、ツールの詳細な使い方を確認して下さい。







Cloud FoundryにおけるSpringアプリケーション開発


本章では、Spring開発者がCloud Foundryへアプリケーションを配置するための実用的な情報を提供します。特に、このセクションではSpringプログラミングやパッケージングに関するCloud Foundry環境固有のトピックやMySQLやRabbitMQのような提供サービスの利用が必要な場合などについて解説します。


(Cloud Foundry上のJavaアプリケーションの監視のためにSpring Insightの利用に興味が有る場合はこちらを参照して下さい)

(Spring、RooもしくはGrailsを動作させてており、サンプルコードを参照したいのであれば、このリンクを参照して下さい:https://github.com/SpringSource/cloudfoundry-samples/wiki



必要条件


VMC、SpringSource STS、Eclipseのいずれかをインストール済み、かつこれらのツールを使って単純なHelloWorldアプリケーションを、ローカルのMicroバージョンかcloudfoundry.comホストへインストールしたと仮定します。かつ熟練したSpringアプリケーション開発者であると仮定します。追加情報として、以下を参照して下さい:


サブトピックス




Springアプリケーションのプログラミングおよびパッケージング

一般的には、Cloud Foundryへ配置するSpringアプリケーションのプログラミンやパッケージングの際の"特別な"作業は不要です。言い換えれば、もしSpringアプリケーションがtcサーバやApache Tomcat上で動作しているなら、変更なしでCloud Foundry上で実行します。

1つの*.warファイルにSpringアプリケーションをパッケージ化することが最も一般的で、vmcコマンドが自動的にSpringアプリケーションであることを検知しプッシュします。しかし、望むなら爆発した(exploded)ディレクトリとして配置することも可能です。

しかしながら、いくつかのCloud Foundry環境でどのように配置したアプリケーションが動作するか理解しておくべきことがあります:

ローカルディスクストレージは短命です。言い換えると、ローカルディスクストレージはアプリケーションの寿命期間の間持続することが保証できません。これは、アプリケーションを再起動するたびにCloud Foundry新規仮想ディスクを作成するからです。付け加えると、Cloud Foundryは自身の環境を更新後、すべてのアプリケーションを再起動します。これは、アプリケーション実行中はローカルファイルへの書き込みが可能ですが、アプリケーション再起動後ファイルは削除されます。もしアプリケーションが書き込むファイルが一時的なものであれば、これは問題にはなりません。しかし、もし持続してファイルに格納されたデータが必要であれば、データを管理するためのデータサービスのひとつ使用しなくてはなりません。このシナリオでは、ドキュメント依存データベースなので、MongoDB利用がよい選択です。


Cloud Foundryは、アプリケーションサーバとしてApache Tomcatを使用します。そして、rootコンテキストの範囲内でアプリケーションを実行します。アプリケーションがパッケージされた*.warファイルの名前によって決まったコンテキストパスが通常のApche Tomcatとは異なっています。

HTTPセッションは複製されません、しかしHTTPトラヒックはsticky(キャッシュされない)です。これはアプリケーションがクラッシュもしくは再起動すると、HTTPセッションは失うことを意味しています。

外部のユーザはvmcプッシュコマンド(もしくは、STSコマンドと同等なもの)によって提供されたURL経由でのみアプリケーションとアクセス可能です。内部でアプリケーションが(MBeanサーバのJMXポートのような)他のポートをlistenすることは可能ですが、アプリケーションの外部ユーザはこれらのポートでlistenできません。



SpringアプリケーションにおけるCloud Foundryサービスの利用

もしSpringアプリケーションが(データベースやRabbitMQのような)サービスを必要とするのであれば、1行のコード変更なしにCloud Foundryへアプリケーションを配置することができるでしょう。この場合、Cloud Foundryは自動的に関連するbean定義にクラウドサービスをバインドを再設定します。詳細は、「自動設定の決定」章を参照して下さい。

もしCloud Foundryの自動再設定機能を利用できない、あるいは設定以上のコントロールを行いたい場合は、(大変シンプルで簡単な)追加ステップを実行しなくてはなりません。Explicitly Configuring Your Application to Use Cloud Foundry Services」章を参照して下さい。


自動設定の決定

もしSpringアプリケーションを、RDBMSやRabbitMQのようなサービスを必要とする場合でさえも、1行のコード変更なしにCloud Foundryへ配置することがおそらくできるでしょう。これはアプリケーションが必要としているサービスが何かCloud Foundry自動検知するためです。そして、もしその設定が自動再設定の制約(訳者注:後続章に記載されている)範囲内であるなら、Cloud Foundryは自動的に再設定され、Cloud Foundryが作成し自己管理しているサービスインスタンスとバインドします。

自動再設定を使って、Cloud Foundryはデータベースを作成、もしくはホスト、ポート、ユーザ名等のプロパティ値を使ってファクトリへ接続します。たとえば、もしCloud Foundryが再設定しデータベースサービスにバインドしたアプリケーションコンテキスト上に単一の javax.sql.DataSource bean を持っているとすると、Cloud Foundryは予め指定したユーザ名、パスワード、ドライバURLを使用しません。正確に言えば、内部の値を使用します。これはアプリケーションとしてわかりやすいです。そしてそれはデータ書き込み可能なRDBMSを持つことだけに注意をはらいます、しかし特定のプロパティが作成済みのデータベースを示すことにはまったく関心がありません。

後続章では、各サポートサービスにおける、自動設定が発生する場合にCloud Foundryが発見するbeanのタイプを説明します。


RDBMS(MySQL、vFablic Postgres)

もし Cloud Foundary が javax.sql.DataSource beanを発見したならば、自動再設定を行います。

以下のSpringアプリケーションコンテキストファイルの一部抜粋は、Cloud Foundryが自動発見し潜在的に自動再設定するbeanタイプを定義しているサンプルです:


<bean class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" id="dataSource">
    <property name="driverClassName" value="org.h2.Driver" />
    <property name="url" value="jdbc:h2:mem:" />
    <property name="username" value="sa" />
    <property name="password" value="" />
</bean>

Cloud Foundryが実際に使用するRDBMSは、配置時に明示的にアプリケーションへバインドされたサービスインスタンス(MySQLもしくはvFablic Postgres)に依存します。Cloud foundryは一般的なDBCSもしくはTomcatデータソースのどちらかを作成します。

Cloud Foundryは内部で以下のプロパティの値を生成します:driverClassName、url、username、password、validationQuery。

MongoDB

自動再設定を動作させるにはSpring Data MongoDB 1.0 M4以降のバージョンを使用して下さい。

Cloud Foundryがorg.springframework.data.document.mongodb.MongoDbFactory beanを発見した場合、自動再設定を実行します。以下のSpringアプリケーションコンテキストファイルの一部抜粋は、Cloud Foundryが自動発見し潜在的に自動再設定するbeanタイプを定義しているサンプルです:

<mongo:db-factory
    id="mongoDbFactory"
    dbname="pwdtest"
    host="127.0.0.1"
    port="1234"
    username="test_user"
    password="test_pass"  />

Cloud Foundryは、以下のプロパティの値を使ってSinpleMOngoDbFactoryを作成します:host、port、username、password、dbname。


Redis

自動再設定を動作させるにはSpring Data Redis 1.0 M4以降のバージョンを使用して下さい。

Cloud Foundryがorg.springframework.data.redis.connection.RedisConnectionFactory beanを発見したならば、自動再設定を実行します。以下のSpringアプリケーションコンテキストファイルの一部抜粋は、Cloud Foundryが自動発見し潜在的に自動再設定するbeanタイプを定義しているサンプルです:

<bean id="redis"
      class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"
      p:hostName="localhost" p:port="6379"  />

Cloud Foundryは、以下のプロパティの値を用いてJedisConnectionFactoryを作成します:host、port、password。これは、アプリケーションにJedis JARをパッケージしなくてはならないことを意味しています。Cloud FoundryはJRedis/RJC実装をカレントでサポートしていません。


RabbitMQ


自動再設定を動作させるには、Spring AMQP 1.0以降のバージョンを使用して下さい。Spring AMQPは、発行機能、マルチスレッド消費世代管理機能、メッセージ変換機能を提供します。またDIや、宣言的な設定を提供するAMQPのリソース管理を促進します。

Cloud Foundryがorg.springframework.amqp.rabbit.connection.ConnectionFactory beanを発見した場合、自動再設定を実行します。以下のSpringアプリケーションコンテキストファイルの一部抜粋は、Cloud Foundryが自動発見し潜在的に自動再設定するbeanタイプを定義しているサンプルです:

<rabbit:connection-factory
    id="rabbitConnectionFactory"
    host="localhost"
    password="testpwd"
    port="1238"
    username="testuser"
    virtual-host="virthost" />

Cloud Foundryは以下のプロパティの値を元にorg.springframework.amqp.rabbit.connection.CachingConnectionFactoryを作成します:host、virtual-host、port、username、password。


自動再設定の制約

Cloud Foundryアプリケーションが以下の条件を充たす場合のみ自動再設定します:

アプリケーションが指定されたサービスタイプのサービスインスタンスを一つだけバインドしていること。よって、MySQLとvFablic Postgresは同一サービスタイプ(リレーショナルデータベース)になります、このためもしMySQL、vFavlic Postgres サービス両方を利用しようとするなら、自動再設定を実行しません。

Springアプリケーションコンテキストファイルにタイプがマッチするbeanが1つだけバインドしていること。例えば、javax.sql.DataSourceタイプのbeanを一つだけ定義している場合です。

もし自動再設定を実行したがカスタマイズされたサービスの設定を持っていた場合は、Cloud Foundryはカスタマイズを無視することにも注意して下さい。


自動再設定の停止

時々Springアプリケーションの自動再設定実行を望まないのであればこの章の説明を読んで下さい。停止させるには2つの方法があります:

VMCもしくはSTSを使ってアプリケーションを配置した場合、フレームワークをSpringのかわりにJavaWeb定義にして下さい。この場合アプリケーションはSpringプロファイル機能の利用ができないことに注意して下さい。

Springアプリケーションコンテキストファイル上でネームスペース要素<cloud:>を使って明示的にサービスを示すbeanの生成を定義して下さい。これは自動再設定が不要であることを定義します。「Cloud Foundryサービス利用のための明示的な設定」章を参照して下さい。


Cloud Foundryサービス利用のための明示的な設定

本章では、Cloud Foundryサービスを使用するためにSpringアプリケーション上で行わなくてはならない簡単な設定ステップについて説明します。サポートされているすべてのCloid Foundryサービスのリストは、「Cloud Foundry上で実行するアプリケーションの設定」章を参照して下さい。

SpringアプリケーションでCloud Foundryサービスを使用するための最も簡単な方法はネームスペース<cloud:>を定義することです。Cloud Foundryスキーマを定義し、ネームスペース<cloud>内に定義されたサービス定義XML要素を使用します。例えば、Springアプリケーションコンテキストファイル内にXMLの1行により、bean指定されたJDBCデータソースもしくはRabbitMQコネクションファクトリを作成することができます。アプリケーションが必要とするならば、複数のデータソースやコネクションファクトリを設定することができます。利用頻度の高い代表的なサービスのインスタンスを構築のためにCloud Foundryが設定値を使用するため、それは完全にオプションなのですが、もし望むのであれば、これらのクラウドサービスを将来的に設定することができます。まとめると、ネームスペース<cloud:>を使用することで、アプリケーションで使用する、より多数のあるいはより多種類のCloud Foundryサービスのコントロールを望むだけ提供します。

いくつかのCloud Foundryサービスを使用するSpringアプリケーションを更新するための基本的なステップは以下のとおりです:

org.cloudfoundry.cloudfoundry-runtime artifact要素へのdependencyを含んだアプリケーションビルドプロセスを更新して下さい。例えば、もしMavenを使用してアプリケーションをビルドするのであれば、以下のpom.xmlの抜粋のようにdependencyを追加して下さい。:

<dependencies>
    <dependency>
        <groupId>org.cloudfoundry</groupId>
        <artifactId>cloudfoundry-runtime</artifactId>
        <version>0.8.1</version>
    </dependency>

    <!-- additional dependency declarations -->
</dependencies>


Spring Framework Milestoneリポジトリを含むアプリケーションビルドプロセスを更新して下さい。以下のpom.xml抜粋は、Mavenでの設定例です:

  • <repositories>
  •     <repository>
  •           <id>org.springframework.maven.milestone</id>
  •            <name>Spring Maven Milestone Repository</name>
  •            <url>http://maven.springframework.org/milestone</url>
  •            <snapshots>
  •                    <enabled>false</enabled>
  •            </snapshots>
  •     </repository>

  •     <!-- additional repository declarations -->
  • </repositories>



以下の抜粋のようなネームスペース<cloud:>定義やCloud Foundryサービススキーマのロケーションを追加することで定義されたデータベースのように、Cloud Foundryサービス定義を含めたSpringアプリケーション内のすべてのアプリケーションコンテキストファイルを更新して下さい:

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:cloud="http://schema.cloudfoundry.org/spring"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context-3.1.xsd
        http://schema.cloudfoundry.org/spring
        http://schema.cloudfoundry.org/spring/cloudfoundry-spring.xsd
        >

    <!-- bean declarations -->

</beans>

データソースなど、特定の要素名を記述したネームスペース<cloud:>により、SpringアプリケーションコンテキストファイルにCloud Foundryサービスを定義することができます。Cloud Foundryはそれぞれのサポートされたサービスの要素を提供します:database(MySQLやvFablic Postgres)、Redis、MongoDB、そしてRabittoMQ。


要素<cloud:data-source>を用いてJdbcTemplateをインジェクトする簡単なデータソース設定例は以下のとおりです。

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:cloud="http://schema.cloudfoundry.org/spring"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context-3.1.xsd
        http://schema.cloudfoundry.org/spring
        http://schema.cloudfoundry.org/spring/cloudfoundry-spring.xsd
        >

    <cloud:data-source id="dataSource" />

    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
      <property name="dataSource" ref="dataSource" />
    </bean>

        <!-- additional beans in your application -->

</beans>

後でVMCやSTSを使ってアプリケーションを配置する場合、(MySQLやvFablic Postgresのような)特定のデータサービスをバインドして、Cloud Foundryはサービスのインスタンスを作成します。上記のサンプルで、driverClassNameやurl、usernameのような代表的なデータソースプロパティを定義していないことに注意して下さい - これはCloud Foundryは自動的にこれらのプロパティの面倒を見ているためです。

Cloud Foundryサービスへアクセススためにアプリケーションコンテキストファイルで使用する要素<cloud:>に関する完全な情報は、以下の章を参照して下さい:

  • <cloud:data-source>: Configure a JDBC Data Source for Either MySQL or vFabric Postgres Databases(MySQL/vFablic Posgtres用JDBCデータソースの設定)章
  • <cloud:mongo-db-factory>: Configure a MongoDB Connection Factory(MongoDBコネクションファクトリの設定)章
  • <cloud:redis-connection-factory>: Configure a Redis Connection Factory(Redisコネクションファクトリの設定)章
  • <cloud:rabbit-connection-factory>: Configure a RabbitMQ Connection Factory(RabbitMQコネクションファクトリの設定)章
  • <cloud:service-scan> Injecting Services Into @Autowired Beans(@Autowired beanへのサービス注入)章
  • <cloud:properties> Get Cloud Foundry Service Information(Cloud Foundryサービス情報の入手)章

アプリケーションで使用するすべてのCloud foundryサービスの定義を完了させた後で、標準Cloud Foundryクライアントコマンド(VMC、SpringSourceツールスイート、もしくはEclipseプラグイン)を使ってこれらのサービスのインスタンスを作成し、アプリケーションにバインドし、そしてホストされたCloud Foundry(cloudfoundry.com)もしくはローカルのMicro Cloud Foundryインスタンスへアプリケーションを配置します。これらのツールの使い方の詳細は、Deploying Applications章を参照して下さい。

<cloud:data-source>

要素<cloud:data-source>は、SpringアプリケーションにJDBCデータソースを定義する簡単な方法を提供します。後で、アプリケーションを実際に配置した時、MySQLやvFablic Postgresのような特定のデータベースサービスインスタンスをバインドします。

以下の例にて、JDBCデータソースとしてorg.springframework.jdbc.core.JdbcTemplate beanが注入される簡単な設定方法を紹介します:

<cloud:data-source id="dataSource" />

<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
  <property name="dataSource" ref="dataSource" />
</bean>

これまでの例では、JDNCドライバクラス名、アクセスするデータベースを特定するURL定義、そしてデータベースユーザのような、データソースへ供給される特定の情報がないことに注意して下さい。Cloud Foundryは、バインドしたデータベースサービスインスタンスの特定のタイプからすべての妥当な実行時情報の面倒を見ます。


属性

要素 <cloud:data-source>の属性リストは以下の表のとおりです。

属性 説明 タイプ
id データソースのID。データソースを参照する場合、JdbcTemplate beanはこのIDを使用します。デフォルト値はサービスインスタンス名です。 文字列
service-name データ・ソースサービス名。複数のデータベースサービスをアプリケーションでバインドする場合や特定のSpring beanをサービスインスタンスとしてバインドしたい場合にのみこの属性を設定します。デフォルト値はサービスインスタンス名です。 文字列


高度なデータソース設定


前章では、単純なJDBCデータ・ソースの設定方法について紹介しました;実際には実行時にデータ・ソースを作成する際に、Cloud Foundryは最も一般的な設定オプションを使用します。しかし、要素<cloud:data-source>の2つの子要素:<cloud:connection>と<cloud:pool>を使ってこれらの設定オプションをいくつかを設定します。

子要素<cloud:connection>は1つの文字列属性(properties)をとります。これは新規DB接続のためにJDBCドライバへ送る接続プロパティを定義します。文字列のフォーマットはセミコロンで分割した名前/値のペアです([propertyName=property;])。

子要素<cloud:connection>は、以下の属性をとります:

属性 説明 タイプ デフォルト
pool-size コネクションプールサイズを指定します。プール内のコネクション最大数、もしくはダッシュで分割した最小・最大コネクション数をセットしてください。整数 最小値0、最大値8(Apache Commons Poolと同じデフォルト値)
max-wait-time 有効なコネクションが亡くなった場合の、発生例外をコネクションに返却するまでの待機する時間の最大ミリ秒数を定義します。-1を指定すると、コネクションプールは永遠に待機します。 整数 -1(永遠に待機)


以下のサンプルは、高度なデータソース設定オプションの使用例です:

        <cloud:data-source id="mydatasource">
            <cloud:connection properties="charset=utf-8" />
            <cloud:pool pool-size="5-10" max-wait-time="2000" />
        </cloud:data-source>


上の例では、JDBCドライバーへキャラクタセットをUTF-8に指定するプロパティを渡しています。プールの最小・最大コネクション数として5と10各々設定しています。
利用できない場合の返却されたコネクションをコネクションプールの最大待機時間は2000ミリ秒(2秒)で、待機後JDBCコネクションプールは例外をスローします。

<cloud:mongo-db-factory >

<cloud:mongo-db-factory>は、SpringアプリケーションのMongoDB コネクションファクトリを設定する1つの簡単な方法を提供します。

以下は、org.springframework.data.mongodb.core.MongoTemplateオブジェクトをインジェクトするMongoDbFactoryの設定サンプルです:

<cloud:mongo-db-factory id="mongoDbFactory" />

<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
    <constructor-arg ref="mongoDbFactory"/>
</bean>


属性

以下の表は、要素<cloud:mongo-db-factory>の属性リストです。


属性 説明 タイプ
id MongoDBコネクションファクトリのID。コネクションファクトリを使用する場合、MongoTemplate beanはこのIDを使用します。デフォルトはサービスインスタンス名です。 文字列
service-name MongoDBサービス名。複数のMongoDBサービスをアプリケーションに指定するときか、特定のSpring beanへバインドして特定のサービスインスタンスを指定したいときだけ、この属性を指定します。 文字列
write-concern データストアへ書き込み時の振る舞い。この属性値はcom.mongodb.WriteConcernクラスと一致します。この属性を指定しない場合、データベースにはWriteConcernモードなしでセットされすべての書き込みのデフォルトがNORMALとなります。
指定可能な属性値は以下のとおりです:
  • NONE:ネットワークに問題があっても例外を発生させません。
  • NORMAL:サーバエラーではない場合を除き、ネットワークに問題があった場合例外を発生させます。
  • SAFE:書き込み操作が完了するまでMongoDBサービスはサーバ上で待機します。ネットワーク、サーバどちらに問題があった場合でも例外を発生させます。
  • FSYNC_SAVE:書き込み操作を実行する前にサーバがデータをディスクにフラッシュするまでMongoDBサービスが待機します。ネットワーク、サーバどちらに問題があった場合でも例外を発生させます。
文字列



高度なMongoDB設定

前章では、デフォルトオプションを使用した単純な1つのMongoDBコネクションファクトリの設定を紹介しています。これは多くの環境で利用できます。しかし、<cloud:mongo-db-factory>のオプションである子要素<cloud:mongo-options>を定義することで、コネクションファクトリのより高度な設定を行うことができます。

子要素<cloud:mongo-options>は以下の2つの属性をとります:

属性 説明 タイプ デフォルト
connections-per-host MongoDBインスタンスのあがっているホスト毎の最大接続許可数を定義します。アイドル時は、コネクションはプール内に保管されます。一旦プールが空になると、接続要求するどんな操作も有効なコネクションが得られるまで待機します。 整数 10
max-wait-time スレッドが有効なコネクションを取得できるまで待機する最大時間(ミリ秒)を定義します。 整数 120,000(2分)


以下は、高度なMongoDBオプションを使った例です:

    <cloud:mongo-db-factory id="mongoDbFactory" write-concern="FSYNC_SAFE">
        <cloud:mongo-options connections-per-host="12" max-wait-time="2000" />
    </cloud:mongo-db-factory>


上記の例では、最大接続数を12にセットしており、スレッドがコネクションを待機する最大時間を1秒にしています。WriteConcernもまた可能な限り安全(FSYNC_SAFE)に定義しています。

<cloud:redis-connection-factory >

<cloud:redis-connection-factory>は、SpringアプリケーションへRailsコネクションファクトリを設定する1つの簡単な方法を提供します。

以下はorg.springframework.data.redis.core.StringRedisTemplateオブジェクトをインジェクトする設定RedisConnectionFactoryのサンプルです:

    <cloud:redis-connection-factory id="redisConnectionFactory" />

    <bean id="redisTemplate" class="org.springframework.data.redis.core.StringRedisTemplate">
        <property name="connection-factory" ref="redisConnectionFactory"/>
    </bean>

属性

以下の表は、要素<cloud:redis-connection-factory>の属性リストです。

属性説明タイプ
id RdedisコネクションファクトリのID。コネクションファクトリを参照する際に、RedisTemplate bean はこのIDを使用します。デフォルト値はサービスインスタンス名です。 文字列
service-name Redisサービスの名前。複数のRedisサービスをバインドする場合か特定のSpring beanへバインドする特定のサービスインスタンスを定義したい場合のみこの属性を指定して下さい。デフォルト値はサービスインスタンスの名前です。 文字列


高度なRedis設定

前章ではRedisコネクションファクトリの単純な1つの設定例を紹介しています;実際に実行時にファクトリを生成する場合、Cloud Foundryは最も一般的な設定オプションを使用します。しかし、要素<cloud:redis-connection-factory>の子要素<cloud:pool>を使って、いくつかの設定オプションを変更することができます。

子要素<cloud:pool>は以下の2つの属性をとります:

属性説明タイプデフォルト
pool-size コネクションプールのサイズを定義します。プール内の最大コネクション数か、ダッシュで分割した最小・最大コネクション数範囲を指定します。 整数 デフォルト最小数は0、最大数は8です。これらはApache Commons Poolのデフォルトと同じです。
max-wait-time 有効なコネクションがない場合、コネクションプールはコネクション返却されるのを指定された最大時間(ミリ秒)だけ待機し、例外を発生させます。-1を指定すると永遠に待機します。 整数 -1(永遠に待機)


以下は、高度なRadis設定オプションを使用した例です:

    <cloud:redis-connection-factory id="myRedisConnectionFactory">
        <cloud:pool pool-size="5-10" max-wait-time="2000" />
    </cloud:redis-connection-factory>

前の例では、コネクションの最小・最大数をそれぞれ5と10に設定しています。有効なコネクションがない場合、コネクションが返却されるまでのコネクションプール待機時間は2000ミリ秒(2秒)で、待機後Radisコネクションプールは例外を発生させます。

<cloud:rabbit-connection-factory >

<cloud:rabbit-connection-factory>は、RabbitMQコネクションファクトリを設定する1つの簡単な方法を提供します。

以下はrabbitTemplateオブジェクトをインジェクトするSpringアプリケーションコンテキストファイルのRabbitConnectionFactory設定例です。サンプルでは名前空間 <rabbit:>を使ってRabbitMQ-specific設定を行なっています:

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:rabbit="http://www.springframework.org/schema/rabbit"
       xmlns:cloud="http://schema.cloudfoundry.org/spring"
       xsi:schemaLocation="http://www.springframework.org/schema/mvc   http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
           http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
           http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
           http://www.springframework.org/schema/rabbit http://www.springframework.org/schema/rabbit/spring-rabbit-1.0.xsd
           http://schema.cloudfoundry.org/spring http://schema.cloudfoundry.org/spring/cloudfoundry-spring.xsd">

    <!-- Obtain a connection to the RabbitMQ via cloudfoundry-runtime: -->
    <cloud:rabbit-connection-factory id="rabbitConnectionFactory" />

    <!-- Set up the AmqpTemplate/RabbitTemplate: -->
    <rabbit:template id="rabbitTemplate"
        connection-factory="rabbitConnectionFactory" />

    <!-- Request that queues, exchanges and bindings be automatically declared on the broker: -->
    <rabbit:admin connection-factory="rabbitConnectionFactory"/>

    <!-- Declare the "messages" queue: -->
    <rabbit:queue name="messages" durable="true"/>

    <!-- additional beans in your application -->

</beans>

上の例では、XMLファイルのトップレベルにあるネームスペース<rabbit:>の定義および場所に注意して下さい。このネームスペースは、Spring AMQPの主なエントリポイントでありRabbitMQブローカ範囲内のメッセージにコールされたキューを定義する、RabbitTemplateオブジェクトとRabbitAdminオブジェクトの設定に使用されます。

RabbitMQ And SpringAdditional Programming Information章を参照して、RabbitMQを使用するための追加情報を確認して下さい。

属性

以下の表は、<cloud:rabbit-connection-factory>の属性リストです。

属性 説明 タイプ
id RabbitMQコネクションファクトリのID。コネクションファクトリを参照する場合、RabbitTemplate bean はこのIDを使用します。デフォルト値はサービスインスタンスの名称です。 文字列
service-name RabbitMQサービスの名称。複数のRabbitMQサービスをバインドしたい場合や特定のSpring beanをバインドして特定のサービスインスタンスを定義するためだけにこの属性は使用されます。デフォルト値はサービスインスタンスの名称です。 文字列


高度なRabbitMQ設定

前章ではRabbitMQコネクションファクトリの簡単な設定方法を消化しました;実際に実行時ファクトリを生成する場合、Cloud Foundryは最も一般的な設定オプションを使用します。しかし、<cloud:rabbit-connection-factory>の子要素<cloud:rabbit-options>を使用することによりこれらの設定を変更することができます。

子要素<cloud:rabbit-options>はチャネルキャッシュサイズを指定するchannel-cache-sizeという1つの属性をセットすることができます。デフォルト値は1です。

以下のは、高度なRabbitrMQ設定オプションを使ったサンプルです:

        <cloud:rabbit-connection-factory id="rabbitConnectionFactory" >
            <cloud:rabbit-options channel-cache-size="10" />
        </cloud:rabbit-connection-factory>

上の例では、RabbitMQコネクションファクトリのチャネルキャッシュサイズを10に設定しています。

<cloud:service-scan>

要素<cloud:service-scan>は、アプリケーションのすべてのサービスをスキャンし、@org.springframework.beans.factory.annotation.Autowiredアノテーションを指定したそれぞれの妥当なタイプのSpring beanを生成します。要素<cloud:service-scan>はSpringコアの<context:component-scan>のクラウド相当として動作します。そしてそれは、アノテーション指定のbeanをCLASSPATHから探し、各beanを生成します。

<cloud:service-scan>は、アプリケーション開発初期では特に使いやすいです、なぜなら明示的に要素<cloud:>を追加すること無しに、Springアプリケーションコンテキストファイルにてバインドした各サービスのbeanへ直ちにアクセスすることができるからです。

要素<cloud:service-scan>は属性や子要素をとりません;例えば:

         <cloud:service-scan />

Javaコードにて、それぞれの依存関係を@Autowiredをつかってアノテートしなくてはなりません。そうすれば、類似するサービスのbeanは自動的に生成されます。例えば:

  package cf.examples;

  import org.springframework.beans.factory.annotation.Autowired;

  ....

  @Autowired DataSource dataSource;
  @Autowired ConnectionFactory rabbitConnectionFactory;
  @Autowired RedisConnectionFactory redisConnectionFactory;
  @Autowired MongoDbFactory mongoDbFactory;

  ...

@Autowiredアノテーションの利用のみが、もしアプリケーションの各サービスタイプの唯1つのサービスを使おうとする場合に適しています。もし複数(例えば、同一のアプリケーションで異なるMySQLサービスインスタンスをバインドする)バインドするならば、@Qualifierアノテーションを使ってSpring beanと特定のサービスインスタンスをマッチさせなくてはなりません。

例えば、2つのMySQLサービス(名前をinventory-dbとpricing-dbとします)をアプリケーションで利用しようとします;@Qualifierアノテーションを使ってサービスインスタンスに適用するSpring beanを定義します:

  @Autowired @Qualifier("inventory-db") DataSource inventoryDataSource;
  @Autowired @Qualifier("pricing-db") DataSource pricingDataSource;

<cloud:properties>

要素<cloud:properties>は、アプリケーションの基本情報や利用サービスをプロパティのようにさらします。アプリケーションは、Spring property placeholder supportを使ってそれらのプロパティを消費します。


要素<cloud:properties>はちょうど1つの属性(id)をとります。idにはProperties beanの名前を指定します。Cloud Foundryによってさらされたすべてのプロパティを保有するために利用できる要素<context:property-placeholder>の参照としてこのIDを使用します。これらのプロパティはほかのbean定義に利用できます。

Spring Framework 3.1以降を使用するならば、これらのプロパティはアプリケーションコンテキストファイルに<cloud:properties>を含めることなしに自動的に有効になることに注意して下さい。

以下は、Springアプリケーションコンテキストファイルでのこの要素の利用例です:

    <cloud:properties id="cloudProperties" />

    <context:property-placeholder properties-ref="cloudProperties" />

    <bean class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="user"
                  value="${cloud.services.mysql.connection.username}" />
    ...
    </bean>

上の例では、cloud.services.mysql.connection.usernameはCloud Foundryによってさらされたプロパティの一つです。

より詳細なサンプルやCloud Foundryによって晒されたすべての完全なプロタティリスとは、Accessing Cloud Foundry Properties章を参照して下さい。

RabbitMQおよびSpring:プログラミングのための追加情報

この章では、RabbitMQを使ったアプリケーションをCloud Foundryへ配置する際の追加情報を紹介します。本章は、RabbitMQやSpringの完全なチュートリアルではありません;必要であれば以下のリソースを参照して下さい:


RabbitMQサービスはAMQPプロトコル(バージョン0.8および0.9.1)を使ってアクセスします。そして、サービスを使用するためにアプリケーションはAMQPクライアントライブラリへのアクセスが必要になります。Spring AMQPプロジェクトは、AMQPアプリケーションに対して、Spring構造のビルドを有効にします。

以下のpom.xmlファイルの例は、RabbitMQ dependenciesおよびrepositoriesにcloudfoundry-runtime dependencyを追加しています:

    <repositories>
        <repository>
              <id>org.springframework.maven.milestone</id>
               <name>Spring Maven Milestone Repository</name>
               <url>http://maven.springframework.org/milestone</url>
               <snapshots>
                       <enabled>false</enabled>
               </snapshots>
        </repository>
    </repositories>

    <dependency>
        <groupId>cglib</groupId>
        <artifactId>cglib-nodep</artifactId>
        <version>2.2</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.amqp</groupId>
        <artifactId>spring-rabbit</artifactId>
        <version>1.0.0.RC2</version>
    </dependency>

    <dependency>
        <groupId>org.cloudfoundry</groupId>
        <artifactId>cloudfoundry-runtime</artifactId>
        <version>0.7.1</version>
    </dependency>

次に、以下のようにアプリケーションコントローラ/ロジックの更新します:

メッセージングライブラリを含む場合:

   import org.springframework.beans.factory.annotation.Autowired;
   import org.springframework.amqp.core.AmqpTemplate;

メッセージの読み書き処理のJavaコード抜粋:

   @Controller
   public class HomeController {
       @Autowired AmqpTemplate amqpTemplate;

       @RequestMapping(value = "/")
       public String home(Model model) {
           model.addAttribute(new Message());
           return "WEB-INF/views/home.jsp";
       }

       @RequestMapping(value = "/publish", method=RequestMethod.POST)
       public String publish(Model model, Message message) {
           // Send a message to the "messages" queue
           amqpTemplate.convertAndSend("messages", message.getValue());
           model.addAttribute("published", true);
           return home(model);
       }

       @RequestMapping(value = "/get", method=RequestMethod.POST)
       public String get(Model model) {
           // Receive a message from the "messages" queue
           String message = (String)amqpTemplate.receiveAndConvert("messages");
           if (message != null)
               model.addAttribute("got", message);
           else
               model.addAttribute("got_queue_empty", true);

           return home(model);
   }



Cloud Foundry設定を制限付けされたSpringプロファイルの利用

前章では、Cloud Foundryへ配置するSpringアプリケーションのためのより簡単な(データソースやRabbitMQコネクションファクトリのような)サービス設定のためのネームスペース<cloud:>の使い方を説明しました。しかし、常にCloud Foundryへアプリケーションを配置したいわけではないでしょう;例えば、反復開発時のアプリケーションテストのために時々ローカル環境へ動作させたいでしょう。この場合、アプリケーション設定を制限(Conditionalize)させ、特定の条件下で特定のフラグメントだけを有効にすることが、使いやすいでしょう。そのような制限付けされた設定はアプリケーションを多くの異なる環境への持ち運び可能にし、(例えば、ローカル環境、その後Cloud Foundryのような)デプロイ時の手作業の設定変更は必要ありません。これを有効にするには、Spring フレームワーク3.1以降で有効となった、Springプロファイル機能を使います。

適当なSpringアプリケーションコンテキストファイルの階層化された要素<beans>のプロファイル属性を使うことで特定の環境のための設定のグループわけをするのが基本的なアイディアです。自身のカスタムプロファイルを作成します。しかしCloud Foundryのコンテキストの中で最も関係が深いものはdefaultとcloudです。

SpirngアプリケーションをCloud Foundryへ配置する場合、Cloud Foundryは自動的にcloudプロファイルを有効にします。これは事前定義された、Cloud Foundryに特化したアプリケーション設定のための便利な場所を許可します。つぎにCloud Foundry環境の外で実行するアプリケーションを許可するためのcloudプロファイルブロック範囲内のネームスペース<cloud:>のすべての設定方法をグループ化すべきです。そしてdefaultプロファイル(もしくはカスタムプロファイル)を使って、非Cloid Foundry環境下に配置する場合に使用する非Cloid Foundry設定をグループ化します。

これは、Spring MongoTemplateを2つの設定を交代で使用する設定を共存させた例です。

<?xml version="1.0" encoding="UTF-8"?>
<beans  xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:cloud="http://schema.cloudfoundry.org/spring"
        xmlns:jdbc="http://www.springframework.org/schema/jdbc"
        xmlns:util="http://www.springframework.org/schema/util"
        xmlns:mongo="http://www.springframework.org/schema/data/mongo"
        xsi:schemaLocation="http://www.springframework.org/schema/data/mongo
          http://www.springframework.org/schema/data/mongo/spring-mongo-1.0.xsd
          http://www.springframework.org/schema/jdbc
          http://www.springframework.org/schema/jdbc/spring-jdbc-3.1.xsd
          http://schema.cloudfoundry.org/spring
          http://schema.cloudfoundry.org/spring/cloudfoundry-spring.xsd
          http://www.springframework.org/schema/beans
          http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
          http://www.springframework.org/schema/util
          http://www.springframework.org/schema/util/spring-util-3.1.xsd">

        <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
           <constructor-arg ref="mongoDbFactory" />
        </bean>

        <beans profile="default">
           <mongo:db-factory id="mongoDbFactory" dbname="pwdtest" host="127.0.0.1" port="27017" username="test_user" password="efgh" />
        </beans>

        <beans profile="cloud">
           <cloud:mongo-db-factory id="mongoDbFactory" />
        </beans>

</beans>

要素<beans profile="value">は標準のルート要素<beans>の内部にネストされています。cloudプロパティのMongoDB コネクションファクトリはネームスペース<cloud:>を使用します。dfaultプロパティのコネクションファクトリ設定はネームスペース<mongo:>を使用します。これで、他方環境へスイッチ時の手動での設定変更しないでのアプリケーション配置できるようになります。

SpringSource Blogを参照して、Springフレームワーク3.1の新機能であるSpringプロファイルの利用についての追加情報を確認して下さい。


Cloud Foundry配置されたSpringアプリケーションからのメール送信

スパムや誤用を避けるために、Cloud Foundry内で実行中のアプリケーションはSMTPはブロックされています。しかし、この章で説明されている方法を使えば、Cloud Foundry上に配置された場合でも電子メールを送信することができます。

SendGridのようなサービスプロバイダは、HTTP Webサービス経由で電子メールを送信することができます。そしてそれはCloud Foundryへアプリケーション配置時のオプションの一つです。しかし、もしあなたがデータセンター内でアプリケーションを実行するのであれば、こういった場合でもSMTPサービス連携を使いたいでしょう。これは、アプリケーション内でのメール送信する方法を条件付けさせるためのSpring Profiles利用の良い例です。手動で設定更新なしで異なった環境でアプリケーションを移動可能にします。

以下のSpringアプリケーションコンテキストの抜粋は、Cloud Foundry上でアプリケーションが実行時SendGridを使って電子メールを送信する設定する例です;cloudプロファイルの使用に注意して下さい:

<?xml version="1.0" encoding="UTF-8"?>
<beans  xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:cloud="http://schema.cloudfoundry.org/spring"

    ...

    <beans profile="cloud">
       <bean name="mailSender" class="example.SendGridMailSender">
          <property name="apiUser" value="youremail@domain.com" />
          <property name="apiKey" value="secureSecret" />
       </bean>
    </beans>

   ...

    <!-- additional beans in your application -->

</beans>



例にある、example.SendGridMailSenderは、SendGridサービスプロバイダを使って電子メールを送信するSpring beanです;しかし、このbeanはCloud Foundry上に配置された時だけ有効となります。もしアプリケーションがデータセンタ内で動作しているのであれば、デフォルトのの電子メールサーバが利用されます。


Cloud Foundryプロパティへのアクセス

Cloud Foundryは多くのアプリケーションやサービスプロパティを配置されたアプリケーション内で直接晒します。配置されたアプリケーションは交代でこれらのプロパティを消費します。Cloud foundryによってさらされたプロパティは、名前やCloudプロバイダのような、アプリケーションについての基本的な情報や、現在アプリケーションで使っているすべてのサービス詳細の接続情報を含んでいます。

一般的にサービスプロパティは、以下の様な形式をとります:

    cloud.services.{service-name}.connection.{property}
    cloud.services.{service-name}.{property}

ここでの{service-name}は、配置時アプリケーションにバインドした時のサービスに与えられた名前をさします。サービスタイプ依存が有効な特定のconnectionプロパティ;本章の最後の表を参照して下さい。

例えば、VMCにてmy-postgresと呼ばれるvFablic Postgresサービスを生成、バインドしたと仮定します;Cloud Foundryは、アプリケーションで交代で消費することのできるこのサービスについての以下のプロパティをさらします:

    cloud.services.my-postgres.connection.host
    cloud.services.my-postgres.connection.hostname
    cloud.services.my-postgres.connection.name
    cloud.services.my-postgres.connection.password
    cloud.services.my-postgres.connection.port
    cloud.services.my-postgres.connection.user
    cloud.services.my-postgres.connection.username
    cloud.services.my-postgres.plan
    cloud.services.my-postgres.type

利便性にとって、もしアプリケーションに与えられたタイプのサービスを丁度1つバインドしたとすると、Cloud Foundryはサービス名の代わりにサービスタイプを元にエイリアスを生成します。たとえば、もしMySQLさーびすだけアプリケーションにバインドしたとすると、プロパティは cloud.services.mysql.connection.{property} からとるでしょう。Cloud Foundryはこの場合以下の様なエイリアスを使用します:

    mysql
    mongodb
    postgresql
    rabbitmq
    redis

もしこれらのCloud Foundryプロパティを使いたいのであれば、cloudプロパティの代わりにSpring プロパティプレースホルダーを使用して下さい;Springプロファイルについては、Using Spring Profiles to Conditionalize Cloud Foundry Configuration章にて簡潔に説明されています。

例えば、spring-mysqlと呼ばれるMySQLサービスがアプリケーションにバインドされており、Cloud Foundryによって提供されたコネクションプールの代わりにc3p0コネクションプールを必要とすると仮定します。しかしCloud Foundryにより提供された同じMySQLサービスのコネクションプロパティ(特にusername、password、そしてJDBC URLなど)を使いたいとします。以下のSpringアプリケーションコンテキストファイルの抜粋はどうこれを実装するか紹介しています:

<beans profile="cloud">
   <bean id="c3p0DataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
      <property name="driverClass" value="com.mysql.jdbc.Driver" />
      <property name="jdbcUrl"
                value="jdbc:mysql://${cloud.services.spring-mysql.connection.host}:${cloud.services.spring-mysql.connection.port}/${cloud.services.spring-mysql.connection.name}" />
      <property name="user" value="${cloud.services.spring-mysql.connection.username}" />
      <property name="password" value="${cloud.services.spring-mysql.connection.password}" />
   </bean>
</beans>


以下の表は、Cloud Foundryが配置アプリケーションにさらしているすべてのアプリケーションおよびサービスのプロパティリストです。プロパティ名内の{service-name}はバインドされたサービスの実際の名前をさしています。

プロパティ 関連サービスタイプ 説明
cloud.application.name 適用不可 アプリケーションの名前
cloud.provider.url 適用不可 cloudfoundry.comのような、クラウドホスティングのURL
cloud.services.{service-name}.connection.db MongoDB Cloud Foundryが作成したデータベース名
cloud.services.{service-name}.connection.host MongoDB MongoDBサーバが動作しているホスト名もしくはIPアドレス
cloud.services.{service-name}.connection.hostname MongoDB MongoDBサーバが動作しているホスト名もしくはIPアドレス
cloud.services.{service-name}.connection.name MongoDB MongoDBデータベースへ接続するユーザ名
cloud.services.{service-name}.connection.password MongoDB MongoDBデータベースへ接続するユーザのパスワード
cloud.services.{service-name}.connection.port MongoDB MongoDBサーバの待受ポート
cloud.services.{service-name}.connection.username MongoDB MongoDBデータベースへ接続するユーザ名
cloud.services.{service-name}.plan MongoDB フリーのような、サービスの支払いプラン
cloud.services.{service-name}.type MongoDB MongoDBサーバの名前とバージョン
cloud.services.{service-name}.connection.name MySQL Cloud Foundryが作成したMySQLデータベースの名前
cloud.services.{service-name}.connection.host MySQL MySQLサーバが動作しているホスト名もしくはIPアドレス
cloud.services.{service-name}.connection.hostname MySQL MySQLサーバが動作しているホスト名もしくはIPアドレス
cloud.services.{service-name}.connection.port MySQL MySQLサーバの受付ポート
cloud.services.{service-name}.connection.user MySQL MySQLデータベースへ接続するユーザ名
cloud.services.{service-name}.connection.username MySQL MySQLデータベースへ接続するユーザ名
cloud.services.{service-name}.connection.password MySQL MySQLデータベースへ接続するユーザのパスワード
cloud.services.{service-name}.plan MySQL フリーのような、サービス支払いプラン
cloud.services.{service-name}.type MySQL MySQLサーバの名前とバージョン
cloud.services.{service-name}.connection.name vFablic Postgres Cloud Foundryが作成したvFablic Postgresデータベースの名前
cloud.services.{service-name}.connection.host vFablic Postgres vFablic Postgresサーバが動作しているホスト名もしくはIPアドレス
cloud.services.{service-name}.connection.hostname vFablic Postgres vFablic Postgresサーバが動作しているホスト名もしくはIPアドレス
cloud.services.{service-name}.connection.port vFablic Postgres vFablic Postgresサーバの受付ポート
cloud.services.{service-name}.connection.user vFablic Postgres vFablic Postgresデータベースへ接続するユーザ名
cloud.services.{service-name}.connection.username vFablic Postgres vFablic Postgresデータベースへ接続するユーザ名
cloud.services.{service-name}.connection.password vFablic Postgres vFablic Postgresサーバへ接続するユーザのパスワード
cloud.services.{service-name}.plan vFablic Postgres フリーのような、サービス支払いプラン
cloud.services.{service-name}.type vFablic Postgres vFablic Postgresサーバの名前とバージョン
cloud.services.{service-name}.connection.url RabbitMQ AMPQブローカへ接続時使用するURL。URLにはホスト、ポート、ユーザ名などが含まれます。
cloud.services.{service-name}.plan RabbitMQ フリーのような、サービス支払いプラン
cloud.services.{service-name}.type RabbitMQ RabbitMQサーバの名前とバージョン
cloud.services.{service-name}.connection.host Redis Redisサーバが動作しているホスト名もしくはIPアドレス
cloud.services.{service-name}.connection.hostname Redis Redisサーバが動作しているホスト名もしくはIPアドレス
cloud.services.{service-name}.connection.port Redis Redisサーバ受付ポート
cloud.services.{service-name}.connection.name Redis Redisデータベースへ接続するユーザ名
cloud.services.{service-name}.connection.password Redis Redisデータベースへ接続するユーザのパスワード
cloud.services.{service-name}.plan Redis フリーのような、サービス支払いプラン
cloud.services.{service-name}.type Redis Redisサーバの名前とバージョン


以上


0 件のコメント:

NVIDIA K20C で Tensor2Tensor を動かしてみた

ふとしたことで一時的にNVIDIA K20Cが使える機会ができた。 ので、ココぞとばかりに前に動かしたTransformerモデルの 実装サンプル Tensor2Tensor を オプションなし で動かしてみた。 [GitHub]T2T: Tensor2Tensor Tra...