1.2.3. kamelet バインディングでのソースとシンクコンポーネントの接続
kamelet バインディング内で、ソースとシンクコンポーネントを接続します。
この手順の例では、図 1.2 に示されるように以下の kamelets を使用しています。
-
ソース kamelet の例 の名前は
coffee-source
です。この単純な kamelet は、Web サイトカタログからコーヒーのタイプについて無作為に生成されるデータを取得します。コーヒーのデータを取得する頻度 (秒単位) を決定する 1 つのパラメーター(period
:integer
値) があります。デフォルト値 (1000 秒) があるため、このパラメーターは必須ではありません。 -
シンク kamelet の例 の名前は
log-sink
です。これはデータを取得し、それをログファイルに出力します。
図 1.2: kamelet バインディングの例
前提条件
- Camel K インテグレーションの作成および編集方法を把握している。
- 「Installing Camel K」で説明されているように、Red Hat Integration - Camel K Operator が OpenShift namespace またはクラスターにインストールされ、Red Hat Integration Camel K CLI ツールをダウンロードしている。
- Camel K インテグレーションに追加する kamelets と必要なインスタンスパラメーターを把握している。
- 使用する kamelets が Kamelet カタログで利用可能である。
手順
- OpenShift クラスターにログインします。
Camel K Operator がインストールされている作業プロジェクトを開きます。Camel K Operator を cluster-mode でインストールした場合、クラスター上の任意のプロジェクトで利用できます。
たとえば、
mycamelk
という名前の既存のプロジェクトを開くには、以下のコマンドを実行します。oc project mycamelk
新しい
KameletBinding
リソースを作成します。任意のエディターで、以下の構造で 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 バインディングの YAML ファイルで定義されます。または、「kamelet インスタンスパラメーターの設定」の説明に従って、プロパティーファイル、configMap、またはシークレットに 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 に必須のパラメーターはありません。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
-
YAML ファイルを保存します (例:
coffee-to-log.yaml
)。 KameletBinding
をリソースとして OpenShift namespace に追加します。oc apply -f <kamelet>.yaml
以下に例を示します。
oc apply -f coffee-to-log.yaml
Camel K Operator は、KameletBinding リソースを使用して Camel K インテグレーションを生成し、実行します。
KameletBinding のステータスを表示するには、次のコマンドを実行します。
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 をクリックします。
以下の例のようなコーヒーイベントの一覧が表示されるはずです。
2021-06-11 17:15:56,725 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 バインディングを削除します。
oc delete kameletbindings/<kameletbinding-name>
以下に例を示します。
oc delete kameletbindings/coffee-to-log
次のステップ
任意で以下を行います。
- 「kamelet バインディングへの操作の追加」で説明されているように、アクション kamelets を中間ステップとして追加します。
- 「kamelet バインディングへのエラーハンドラーポリシーの追加」で説明されているように、kamelet バインディングにエラー処理を追加します。