1.2.3. Kamelet Bindingでのソースおよびシンクコンポーネントの接続
Kamelet Binding内で、ソースおよびシンクコンポーネントを接続します。
この手順の例では、図1.2で示されているように、以下の Kamelets を使用しています。
-
ソース Kamelet の例は
coffee-sourceという名前です。この簡単な Kamelet は、Web サイトカタログからコーヒーのタイプについて無作為に生成されたデータを取得します。コーヒーのデータを取得する頻度 (秒単位) を決定する 1 つのパラメーター(period:integer値) があります。デフォルト値 (1000 秒) があるため、このパラメーターは必須ではありません。 -
シンク Kamelet のサンプルの名前は
log-sinkです。これはデータを取得し、それをログファイルに出力します。log-sinkKamelet は Kamelet Catalog で提供されます。
図 1.2: Kamelet Bindingの例
前提条件
- Camel K インテグレーションの作成および編集方法を把握している。
- 「 Installing Camel K 」の手順に従って、Red Hat Integration - Camel K Operator が OpenShift namespace またはクラスターにインストールされ、Red Hat Integration Camel K CLI ツールをダウンロードしている。
- Camel K インテグレーションに追加する Kamelets と必要なインスタンスパラメーターを知っている必要があります。
使用する Kamelets は Kamelet Catalog で利用できます。
この例では、
log-sinkKamelet は Kamelet Catalog で提供されます。この例のソース Kamelet を使用する場合は、coffeecoffee-sourceコード をcoffee-source.kamelet.yamlという名前のローカルファイルにコピーして保存し、以下のコマンドを実行して Kamelet Catalog に追加します。oc apply -f coffee-source.kamelet.yaml
手順
- OpenShift クラスターにログインします。
Camel K Operator がインストールされている作業プロジェクトを開きます。Camel K Operator を cluster-mode でインストールした場合、クラスター上の任意のプロジェクトで利用できます。
たとえば、
my-camel-k-projectという名前の既存のプロジェクトを開くには、以下のコマンドを実行します。oc project my-camel-k-project以下のオプションのいずれかを使用して、新しい Kamelet Bindingを作成します。
-
kamel bindコマンドを使用して Kamelet Binding を作成し、実行します(このオプションは、コマンドライン定義の助けとなる単純な Kamelet Bindingに役に立ちます) YAML ファイルを作成して Kamelet Bindingを定義し、
oc applyコマンドを使用して実行します(このオプションは Kamelet Binding設定が複雑である場合に便利です)。kamel bind コマンドを使用した新しい Kamelet Bindingの作成
以下の
kamel bind構文を使用して、ソースおよびシンク Kamelets および設定パラメーターを指定します。kamel bind <kamelet-source> -p “<property>=<property-value>” <kamelet-sink> -p “<property>=<property-value>”
kamel bind <kamelet-source> -p “<property>=<property-value>” <kamelet-sink> -p “<property>=<property-value>”Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下は例になります。
kamel bind coffee-source -p “source.period=5000” log-sink -p "sink.showStreams=true"
kamel bind coffee-source -p “source.period=5000” log-sink -p "sink.showStreams=true"Copy to Clipboard Copied! Toggle word wrap Toggle overflow Camel K Operator は
KameletBindingリソースを生成し、対応する Camel K インテグレーションを実行します。YAML ファイルを使用した新しい Kamelet Bindingの作成
任意のエディターで、以下の構造で YAML ファイルを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Kamelet Bindingの名前を追加します。
この例では、バインディングが
coffee-sourceKamelet をlog-sinkKamelet に接続するため、名前はcoffee-to-logになります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ソース Kamelet (例:
coffee-source) を指定し、Kamelet のパラメーターを設定します。注記:この例では、パラメーターは Kamelet Binding の YAML ファイル内に定義されます。または、「Kamelet インスタンスのパラメーターの設定」で説明されているように、プロパティーファイル、ConfigMap、または Secret に Kamelet のパラメーターを設定できます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow シング Kamelet (例:
log-sink) を指定し、Kamelet のパラメーターを設定します。log-sinkKamelet にオプションのshowStreamsパラメーターを使用してメッセージのボディーを表示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
YAML ファイルを保存します (例:
coffee-to-log.yaml)。 KameletBinding をリソースとして OpenShift namespace に追加します (
KameletBinding)。oc apply -f <kamelet-binding>.yaml以下は例になります。
oc apply -f coffee-to-log.yamlCamel K Operator は、
KameletBindingリソースを使用して Camel K インテグレーションを生成し、実行します。
-
Kamelet Binding のステータスを表示するには、以下を実行します。
oc get kameletbindings-
対応するインテグレーションの状態を表示するには、
oc get integrations 出力を表示するには、以下を実行します。
コマンドラインからのログを表示するには、ターミナルのウィンドウを開き、以下のコマンドを入力します。
kamel log <integration-name>たとえば、インテグレーション名が
coffee-to-logの場合は、以下のコマンドを使用します。kamel log coffee-to-logOpenShift Web コンソールからのログを表示するには、以下を実行します。
- Workloads > Pods を選択します。
Camel K インテグレーションの Pod の名前をクリックし、Logs をクリックします。
以下の例のようなコーヒーイベントの一覧が表示されるはずです。
INFO [log-sink-E80C5C904418150-0000000000000001] (Camel (camel-1) thread #0 - timer://tick) {"id":7259,"uid":"a4ecb7c2-05b8-4a49-b0d2-d1e8db5bc5e2","blend_name":"Postmodern Symphony","origin":"Huila, Colombia","variety":"Kona","notes":"delicate, chewy, black currant, red apple, star fruit","intensifier":"balanced"}INFO [log-sink-E80C5C904418150-0000000000000001] (Camel (camel-1) thread #0 - timer://tick) {"id":7259,"uid":"a4ecb7c2-05b8-4a49-b0d2-d1e8db5bc5e2","blend_name":"Postmodern Symphony","origin":"Huila, Colombia","variety":"Kona","notes":"delicate, chewy, black currant, red apple, star fruit","intensifier":"balanced"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
インテグレーションを停止するには、Kamelet Bindingを削除します。
oc delete kameletbindings/<kameletbinding-name>以下は例になります。
oc delete kameletbindings/coffee-to-log
次のステップ
任意で以下を行います。
- 「Kamelet Bindingへの操作の追加」で説明されているように、アクション Kamelets を中間ステップとして追加します。
- 「エラー処理ポリシーの Kamelet Bindingへの追加」で説明されているように、Kamelet Bindingにエラー処理を追加します。