1.2.3. Kamelet Binding でのソースおよびシンクコンポーネントの接続
Kamelet Binding 内で、ソースおよびシンクコンポーネントを接続します。
この手順の例では、図 1.2 で示されているように、以下の Kamelets を使用しています。
-
ソース Kamelet の例 は
coffee-source
という名前です。この簡単な Kamelet は、Web サイトカタログからコーヒーのタイプについて無作為に生成されたデータを取得します。コーヒーのデータを取得する頻度 (秒単位) を決定する 1 つのパラメーター (period
:integer
値) があります。デフォルト値 (1000 秒) があるため、このパラメーターは必須ではありません。 -
シンク Kamelet のサンプルの名前は
log-sink
です。これはデータを取得し、それをログファイルに出力します。log-sink
Kamelet は 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-sink
Kamelet は Kamelet Catalog で提供されます。この例のソース Kamelet を使用する場合は、coffee-source
code を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 coffee-source -p “source.period=5000” log-sink -p "sink.showStreams=true"
Camel K Operator は
KameletBinding
リソースを生成し、対応する Camel K インテグレーションを実行します。YAML ファイルを使用した新しい Kamelet Binding の作成
任意のエディターで、以下の構造で YAML ファイルを作成します。
apiVersion: camel.apache.org/v1alpha1 kind: KameletBinding metadata: name: spec: source: sink:
Kamelet Binding の名前を追加します。
この例では、バインディングが
coffee-source
Kamelet をlog-sink
Kamelet に接続するため、名前はcoffee-to-log
になります。apiVersion: camel.apache.org/v1alpha1 kind: KameletBinding metadata: name: coffee-to-log spec: source: sink:
ソース Kamelet (例:
coffee-source
) を指定し、Kamelet のパラメーターを設定します。注記:この例では、パラメーターは Kamelet Binding の YAML ファイル内に定義されます。または、Configuring Kamelet instance parameters で説明されているように、プロパティーファイル、ConfigMap、または Secret に Kamelet のパラメーターを設定できます。
apiVersion: camel.apache.org/v1alpha1 kind: KameletBinding metadata: name: coffee-to-log spec: source: ref kind: Kamelet apiVersion: camel.apache.org/v1alpha1 name: coffee-source properties: period: 5000 sink:
シング Kamelet (例:
log-sink
) を指定し、Kamelet のパラメーターを設定します。log-sink
Kamelet にオプションのshowStreams
パラメーターを使用してメッセージのボディーを表示します。apiVersion: camel.apache.org/v1alpha1 kind: KameletBinding metadata: name: coffee-to-log spec: source: ref: kind: Kamelet apiVersion: camel.apache.org/v1alpha1 name: coffee-source properties: period: 5000 sink: ref: kind: Kamelet apiVersion: camel.apache.org/v1alpha1 name: log-sink properties: showStreams: true
-
YAML ファイルを保存します (例:
coffee-to-log.yaml
)。 KameletBinding をリソースとして OpenShift namespace に追加します (
KameletBinding
)。oc apply -f <kamelet-binding>.yaml
以下に例を示します。
oc apply -f coffee-to-log.yaml
Camel K Operator は、
KameletBinding
リソースを使用して Camel K インテグレーションを生成し、実行します。
-
Kamelet Binding のステータスを表示するには、以下を実行します。
oc get kameletbindings
-
対応するインテグレーションの状態を表示するには、
oc get integrations
出力を表示するには、以下を実行します。
コマンドラインからのログを表示するには、ターミナルのウィンドウを開き、以下のコマンドを入力します。
kamel log <integration-name>
たとえば、インテグレーション名が
coffee-to-log
の場合は、以下のコマンドを使用します。kamel log coffee-to-log
OpenShift 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"}
インテグレーションを停止するには、Kamelet Binding を削除します。
oc delete kameletbindings/<kameletbinding-name>
以下に例を示します。
oc delete kameletbindings/coffee-to-log
次のステップ
任意で以下を行います。
- Adding an operation to a Kamelet Binding で説明されているように、アクション Kamelets を中間ステップとして追加します。
- Adding an error handler policy to a Kamelet Binding で説明されているように、Kamelet Binding にエラー処理を追加します。