第170章 JClouds Component
Camel バージョン 2.9 以降で利用可能
このコンポーネントにより、クラウドプロバイダーのキー値エンジン (BlobStores) およびコンピューティングサービスとのやり取りが可能になります。コンポーネントは jclouds を使用します。
BlobStores とコンピューティングサービスの抽象化を提供するライブラリー。
ComputeService は、クラウド内のマシンを管理するタスクを簡素化します。たとえば、ComputeService を使用して 5 台のマシンを起動し、それらにソフトウェアをインストールできます。
BlobStore は、Amazon S3 などのキー値プロバイダーの処理を簡素化します。たとえば、BlobStore を使用すると、コンテナーの単純なマップビューを表示できます。
camel jclouds コンポーネントでは、JcloudsBlobStoreEndpoint と JcloudsComputeEndpoint という 2 種類のエンドポイントを指定するため、両方の抽象化を使用できます。blobstore エンドポイントにはプロデューサーとコンシューマーの両方を配置できますが、コンピューティングエンドポイントにはプロデューサーしか配置できません。
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>170.1. コンポーネントの設定
camel jclouds コンポーネントは、初期化中にコンポーネントに渡される限り、複数の jclouds blobstore と計算サービスを利用します。このコンポーネントは、blobstores とコンピュートサービスのリストを受け入れます。設定方法は次のとおりです。
<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 とコンピュートサービスを処理できます。各エンドポイントで使用される実際の実装は、URI 内でプロバイダーを渡すことによって指定されます。