第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 内でプロバイダーを渡すことで指定されます。