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