3.3. データソースの kamelet バインディングの Knative 宛先への接続
データソースを Knative 宛先 (チャネルまたはブローカー) に接続するには、図 3.2 に示されるように kamelet バインディングを作成します。
図 3.2 データソースの Knative 宛先への接続
Knative 宛先は Knative チャネルまたは Knative ブローカーになります。
データをチャネルに送信する場合、チャネルには 1 つのイベントタイプのみがあります。kamelet バインディングでチャネルのプロパティー値を指定する必要はありません。
データをブローカーに送信する場合、ブローカーが複数のイベントタイプを処理できるため、kamelet binding でブローカーを参照する場合は、タイププロパティーの値を指定する必要があります。
前提条件
イベントの送信先となる Knative チャネルまたはブローカーの名前およびタイプを知っている必要があります。
この手順の例では、
mychannel
という名前のInMemoryChannel
チャネルまたはdefault
という名前のブローカーを使用します。ブローカーのサンプルでは、type
プロパティーの値はコーヒーイベントに対してcoffee
になります。Camel インテグレーションに追加する kamelet と必要なインスタンスパラメーターを把握している。
この手順の kamelet の例では、
coffee-source
kamelet です。各イベントを送信する頻度を指定する任意のパラメーターperiod
があります。Example source kamelet のコードを、coffee-source.kamelet.yaml
ファイルという名前のファイルにコピーしてから、以下のコマンドを実行してこれをリソースとして namespace に追加できます。oc apply -f coffee-source.kamelet.yaml
手順
データソースを Knative 宛先に接続するには、kamelet バインディングを作成します。
任意のエディターで、以下の基本構造で YAML ファイルを作成します。
apiVersion: camel.apache.org/v1alpha1 kind: KameletBinding metadata: name: spec: source: sink:
kamelet binding の名前を追加します。この例では、バインディングが
coffee-source
kamelet を Knative 宛先に接続するため、名前はcoffees-to-knative
になります。apiVersion: camel.apache.org/v1alpha1 kind: KameletBinding metadata: name: coffees-to-knative spec: source: sink:
kamelet バインディングのソースの場合は、データソース kamelet を指定し (たとえば、
coffee-source
kamelet はコーヒーに関するデータが含まれるイベントを生成します)、kamelet のパラメーターを設定します。apiVersion: camel.apache.org/v1alpha1 kind: KameletBinding metadata: name: coffees-to-knative spec: source: ref: kind: Kamelet apiVersion: camel.apache.org/v1alpha1 name: coffee-source properties: period: 5000 sink:
kamelet バインディングのシンクでは、Knative チャネルまたはブローカーおよび必要なパラメーターを指定します。
以下の例では、Knative チャネルをシンクとして指定します。
apiVersion: camel.apache.org/v1alpha1 kind: KameletBinding metadata: name: coffees-to-knative spec: source: ref: kind: Kamelet apiVersion: camel.apache.org/v1alpha1 name: coffee-source properties: period: 5000 sink: ref: apiVersion: messaging.knative.dev/v1 kind: InMemoryChannel name: mychannel
この例では、Knative ブローカーをシンクとして指定します。
apiVersion: camel.apache.org/v1alpha1 kind: KameletBinding metadata: name: coffees-to-knative spec: source: ref: kind: Kamelet apiVersion: camel.apache.org/v1alpha1 name: coffee-source properties: period: 5000 sink: ref: kind: Broker apiVersion: eventing.knative.dev/v1 name: default properties: type: coffee
-
YAML ファイルを保存します (例:
coffees-to-knative.yaml
)。 - OpenShift プロジェクトにログインします。
KameletBinding をリソースとして OpenShift namespace に追加します。
oc apply -f <kamelet binding filename>
以下に例を示します。
oc apply -f coffees-to-knative.yaml
Camel K Operator は、KameletBinding リソースを使用して Camel K インテグレーションを生成し、実行します。ビルドに数分かかる場合があります。
KameletBinding のステータスを表示するには、次のコマンドを実行します。
oc get kameletbindings
インテグレーションの状態を表示するには、以下を実行します。
oc get integrations
インテグレーションのログを表示するには、以下を実行します。
kamel logs <integration> -n <project>
以下に例を示します。
kamel logs coffees-to-knative -n my-camel-knative
結果は以下の出力に似ています。
... [1] 2021-06-21 07:48:12,696 INFO [io.quarkus] (main) camel-k-integration 1.4.0 on JVM (powered by Quarkus 1.13.0.Final) started in 2.790s.