第161章 jclouds コンポーネント
Camel バージョン 2.9 で利用可能
このコンポーネントにより、クラウドプロバイダーのキー/値エンジン(blobstores)および Compute サービスとの対話が可能になります。コンポーネントは jclouds を使用します。これは、Blobstore および Compute サービスの抽象化を提供するライブラリーです。
ComputeService は、クラウドでマシンを管理するタスクを簡素化します。たとえば、ComputeService を使用して 5 つのマシンを起動し、そのマシンにソフトウェアをインストールすることができます。
BlobStore は、Amazon S3 などのキーと値のペアプロバイダーの処理を簡素化します。たとえば、BlobStore にはコンテナーの単純な Map ビューを指定できます。
camel jclouds コンポーネントを使用すると、JcloudsBlobStoreEndpoint と JcloudsComputeEndpoint の 2 つのタイプのエンドポイントを指定するため、両方の抽象化を使用できます。Blobstore エンドポイントにはプロデューサーとコンシューマーの両方を設定できますが、プロデューサーは Compute エンドポイントでのみ設定できます。
Maven ユーザーは、このコンポーネントの pom.xml に以下の依存関係を追加する必要があります。
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-jclouds</artifactId>
<version>x.x.x</version>
<!-- use the same version as your Camel core version -->
</dependency>
161.1. コンポーネントの設定 リンクのコピーリンクがクリップボードにコピーされました!
camel jclouds コンポーネントは、初期化中にコンポーネントに渡される限り、複数の jclouds blobstores および Compute サービスを利用します。コンポーネントは、リスト Blobstore および Compute サービスを受け入れます。以下の設定方法を説明します。
<bean id="jclouds" class="org.apache.camel.component.jclouds.JcloudsComponent">
<property name="computeServices">
<list>
<ref bean="computeService"/>
</list>
</property>
<property name="blobStores">
<list>
<ref bean="blobStore"/>
</list>
</property>
</bean>
<!-- Creating a blobstore from spring / blueprint xml -->
<bean id="blobStoreContextFactory" class="org.jclouds.blobstore.BlobStoreContextFactory"/>
<bean id="blobStoreContext" factory-bean="blobStoreContextFactory" factory-method="createContext">
<constructor-arg name="provider" value="PROVIDER_NAME"/>
<constructor-arg name="identity" value="IDENTITY"/>
<constructor-arg name="credential" value="CREDENTIAL"/>
</bean>
<bean id="blobStore" factory-bean="blobStoreContext" factory-method="getBlobStore"/>
<!-- Creating a compute service from spring / blueprint xml -->
<bean id="computeServiceContextFactory" class="org.jclouds.compute.ComputeServiceContextFactory"/>
<bean id="computeServiceContext" factory-bean="computeServiceContextFactory" factory-method="createContext">
<constructor-arg name="provider" value="PROVIDER_NAME"/>
<constructor-arg name="identity" value="IDENTITY"/>
<constructor-arg name="credential" value="CREDENTIAL"/>
</bean>
<bean id="computeService" factory-bean="computeServiceContext" factory-method="getComputeService"/>
各種のコンポーネントで複数の Blobstores および Compute サービスを処理できることが確認できます。各エンドポイントによって使用される実際の実装は、URI 内でプロバイダーを渡すことで指定されます。