1.3. ファイルコンシューマークイックスタートサンプルの使用
Camel Quarkus Examples Git リポジトリーからクイックスタートをダウンロードまたはクローン作成することができます。この例は file-bindy-ftp
ディレクトリーにあります。
zip ファイルの内容を抽出するか、リポジトリーのクローンをローカルディレクトリー (例: quickstarts
) にデプロイメントします。
この Camel Quarkus のサンプルは、ローカルマシンのコマンドラインで実行できます。開発モードを使用すると、開発段階にてインテグレーションで繰り返しを迅速に行うことができ、コードに関するフィードバックを即座に受け取ることができます。詳細は、Camel Quarkus User Guide の Development Mode セクションを参照してください。
コンテナーのリソース制限を設定したり、Quarkus Kubernetes クライアントが自己署名証明書を信頼できるようにする必要がある場合は、これらの設定オプションを src/main/resources/application.properties
ファイルで確認できます。
前提条件
-
OpenShift クラスターにアクセス可能な
cluster admin
権限がある。 -
SFTP サーバーにアクセスでき、アプリケーションプロパティー設定ファイル
src/main/resources/application.properties
に (接頭辞ftp
が付いた) サーバープロパティーが設定されている。
手順
Maven を使用して、開発モードでサンプルアプリケーションをビルドします。
$ cd quickstarts/file-bindy-ftp $ mvn clean compile quarkus:dev
アプリケーションは 10 秒ごとにタイマーコンポーネントをトリガーし、ランダムな "book" データを生成して、100 個のエントリーを含む CSV ファイルを一時ディレクトリーに作成します。コンソールに以下のメッセージが表示されます。
[route1] (Camel (camel-1) thread #3 - timer://generateBooks) Generating randomized books CSV data
次に、CSV ファイルがファイルコンシューマーによって読み取られ、Bindy を使用して個々のデータ行が Book オブジェクトにマーシャリングされます。
[route2] (Camel (camel-1) thread #1 - file:///tmp/books) Reading books CSV data from 89A0EE24CB03A69-0000000000000000
続いて、Book オブジェクトのコレクションが個別の項目に分割され、genre プロパティーに基づいて集約されます。
[route3] (Camel (camel-1) thread #0 - AggregateTimeoutChecker) Processed 34 books for genre 'Action' [route3] (Camel (camel-1) thread #0 - AggregateTimeoutChecker) Processed 31 books for genre 'Crime' [route3] (Camel (camel-1) thread #0 - AggregateTimeoutChecker) Processed 35 books for genre 'Horror'
最後に、集約されたブックコレクションが CSV 形式にアンマーシャリングされ、テスト FTP サーバーにアップロードされます。
[route4] (Camel (camel-1) thread #2 - seda://processed) Uploaded books-Action-89A0EE24CB03A69-0000000000000069.csv [route4] (Camel (camel-1) thread #2 - seda://processed) Uploaded books-Crime-89A0EE24CB03A69-0000000000000069.csv [route4] (Camel (camel-1) thread #2 - seda://processed) Uploaded books-Horror-89A0EE24CB03A69-0000000000000069.csv
JVM モードでアプリケーションを実行するには、以下のコマンドを入力します。
$ mvn clean package -DskipTests $ java -jar target/*-runner.jar
以下のコマンドを入力し、サンプルアプリケーションをビルドして OpenShift にデプロイできます。
$ mvn clean package -DskipTests -Dquarkus.kubernetes.deploy=true
Pod が実行されていることを確認します。
$oc get pods NAME READY STATUS RESTARTS AGE camel-quarkus-examples-file-bindy-ftp-1-d72mb 1/1 Running 0 5m15s ssh-server-deployment-5f6f685658-jtr9n 1/1 Running 0 5m28s
オプション: 以下のコマンドを入力してアプリケーションログを監視します。
oc logs -f camel-quarkus-examples-file-bindy-ftp-5d48f4d85c-sjl8k