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-sinkKamelet であり、これはテストおよびデバッグに役立ちます。データのメッセージボディーを表示するために指定されたshowStreamsパラメーター。
手順
Knative チャネルをデータシンクに接続するには、Kamelet Binding を作成します。
任意のエディターで、以下の基本構造で YAML ファイルを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Kamelet Binding の名前を追加します。この例では、バインディングが Knative 宛先を
log-sinkKamelet に接続するため、名前は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-sinkKamelet) を指定し、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.yamlCamel 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