3.4. Kamelet Binding での Knative 宛先のデータシンクへの接続
Knative 宛先をデータシンクに接続するには、図 3.3 にあるように Kamelet Binding を作成します。
図 3.3 Knative 宛先のデータシンクへの接続
Knative 宛先は Knative チャネルまたは Knative ブローカーになります。
データをチャネルから送信する場合、チャネルには 1 つのイベントタイプのみがあります。Kamelet Binding でチャネルのプロパティー値を指定する必要はありません。
データをブローカーから送信する場合、ブローカーが複数のイベントタイプを処理できるため、Kamelet Binding でブローカーを参照する場合は、タイププロパティーの値を指定する必要があります。
前提条件
イベントの受信元となる Knative チャネルのタイプまたはブローカーの名前を知っている必要があります。ブローカーでは、受信するイベントのタイプも知っている必要があります。
この手順の例では、mychannel という名前の InMemoryChannel チャネルまたは mybroker という名前のブローカーおよびコーヒーイベント (type プロパティー) を使用します。これらは、Kamelet Binding でのデータソースの Knative チャネルへの接続 でコーヒーソースからイベントを受信するのに使用した宛先の例と同じです。
Camel インテグレーションに追加する Kamelet と必要なインスタンスパラメーターを把握している。
この手順の Kamelet の例は、Kamelet Catalog で提供される
log-sink
Kamelet であり、これはテストおよびデバッグに役立ちます。データのメッセージボディーを表示するために指定されたshowStreams
パラメーター。
手順
Knative チャネルをデータシンクに接続するには、Kamelet Binding を作成します。
任意のエディターで、以下の基本構造で YAML ファイルを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Kamelet Binding の名前を追加します。この例では、バインディングが Knative 宛先を
log-sink
Kamelet に接続するため、名前はknative-to-log
になります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Kamelet Binding のソースでは、Knative チャネルまたはブローカーおよび必要なパラメーターを指定します。
以下の例では、Knative チャネルをソースとして指定します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、Knative ブローカーをソースとして指定します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Kamelet Binding のシンクでは、データコンシューマー Kamelet (例:
log-sink
Kamelet) を指定し、Kamelet のパラメーターを設定します。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
YAML ファイルを保存します (例:
knative-to-log.yaml
)。 - OpenShift プロジェクトにログインします。
Kamelet Binding をリソースとして OpenShift namespace に追加します (
oc apply -f <kamelet binding filename>
)。以下に例を示します。
oc apply -f knative-to-log.yaml
Camel K Operator は、
KameletBinding
リソースを使用して Camel K インテグレーションを生成し、実行します。ビルドに数分かかる場合があります。KameletBinding
のステータスを表示するには、以下を実行します。oc get kameletbindings
インテグレーションの状態を表示するには、以下を実行します。
oc get integrations
インテグレーションのログを表示するには、以下を実行します。
kamel logs <integration> -n <project>
以下に例を示します。
kamel logs knative-to-log -n my-camel-knative
この出力では、以下の例のようにコーヒーイベントが表示されるはずです。
[1] INFO [sink] (vert.x-worker-thread-1) {"id":254,"uid":"8e180ef7-8924-4fc7-ab81-d6058618cc42","blend_name":"Good-morning Star","origin":"Santander, Colombia","variety":"Kaffa","notes":"delicate, creamy, lemongrass, granola, soil","intensifier":"sharp"} [1] INFO [sink] (vert.x-worker-thread-2) {"id":8169,"uid":"3733c3a5-4ad9-43a3-9acc-d4cd43de6f3d","blend_name":"Caf? Java","origin":"Nayarit, Mexico","variety":"Red Bourbon","notes":"unbalanced, full, granola, bittersweet chocolate, nougat","intensifier":"delicate"}
[1] INFO [sink] (vert.x-worker-thread-1) {"id":254,"uid":"8e180ef7-8924-4fc7-ab81-d6058618cc42","blend_name":"Good-morning Star","origin":"Santander, Colombia","variety":"Kaffa","notes":"delicate, creamy, lemongrass, granola, soil","intensifier":"sharp"} [1] INFO [sink] (vert.x-worker-thread-2) {"id":8169,"uid":"3733c3a5-4ad9-43a3-9acc-d4cd43de6f3d","blend_name":"Caf? Java","origin":"Nayarit, Mexico","variety":"Red Bourbon","notes":"unbalanced, full, granola, bittersweet chocolate, nougat","intensifier":"delicate"}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 実行中のインテグレーションを停止するには、関連付けられた Kamelet Binding リソースを削除します。
oc delete kameletbindings/<kameletbinding-name>
以下に例を示します。
oc delete kameletbindings/knative-to-log