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 で提供されます。
Kamelet Binding の例

図 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 codecoffee-source.kamelet.yaml という名前のローカルファイルにコピーして保存し、以下のコマンドを実行して Kamelet Catalog に追加します。

    oc apply -f coffee-source.kamelet.yaml

手順

  1. OpenShift クラスターにログインします。
  2. Camel K Operator がインストールされている作業プロジェクトを開きます。Camel K Operator を cluster-mode でインストールした場合、クラスター上の任意のプロジェクトで利用できます。

    たとえば、my-camel-k-project という名前の既存のプロジェクトを開くには、以下のコマンドを実行します。

    oc project my-camel-k-project

  3. 以下のオプションのいずれかを使用して、新しい 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 の作成

      1. 任意のエディターで、以下の構造で YAML ファイルを作成します。

        apiVersion: camel.apache.org/v1alpha1
        kind: KameletBinding
        metadata:
          name:
        spec:
          source:
          sink:
      2. 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:
      3. ソース 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:
      4. シング 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
      5. YAML ファイルを保存します (例: coffee-to-log.yaml)。
      6. KameletBinding をリソースとして OpenShift namespace に追加します (KameletBinding)。

        oc apply -f <kamelet-binding>.yaml

        以下に例を示します。

        oc apply -f coffee-to-log.yaml

        Camel K Operator は、KameletBinding リソースを使用して Camel K インテグレーションを生成し、実行します。

  4. Kamelet Binding のステータスを表示するには、以下を実行します。

    oc get kameletbindings

  5. 対応するインテグレーションの状態を表示するには、oc get integrations
  6. 出力を表示するには、以下を実行します。

    • コマンドラインからのログを表示するには、ターミナルのウィンドウを開き、以下のコマンドを入力します。

      kamel log <integration-name>

      たとえば、インテグレーション名が coffee-to-log の場合は、以下のコマンドを使用します。

      kamel log coffee-to-log

    • OpenShift Web コンソールからのログを表示するには、以下を実行します。

      1. Workloads > Pods を選択します。
      2. 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"}
  7. インテグレーションを停止するには、Kamelet Binding を削除します。

    oc delete kameletbindings/<kameletbinding-name>

    以下に例を示します。

    oc delete kameletbindings/coffee-to-log

次のステップ

任意で以下を行います。