3.4. Connecting a Knative destination to a data sink in a kamelet binding
Knative 宛先をデータシンクに接続するには、図 3.3 にあるように kamelet バインディングを作成します。
図 3.3 Knative 宛先のデータシンクへの接続
Knative 宛先は Knative チャネルまたは Knative ブローカーになります。
データをチャネルから送信する場合、チャネルには 1 つのイベントタイプのみがあります。kamelet バインディングでチャネルのプロパティー値を指定する必要はありません。
データをブローカーから送信する場合、ブローカーが複数のイベントタイプを処理できるため、kamelet binding でブローカーを参照する場合は、タイププロパティーの値を指定する必要があります。
前提条件
イベントの受信元となる Knative チャネルのタイプまたはブローカーの名前を知っている必要があります。ブローカーでは、受信するイベントのタイプも知っている必要があります。
この手順の例では、mychannel という名前の InMemoryChannel チャネルまたは mybroker という名前のブローカーおよびコーヒーイベント (type プロパティー) を使用します。これらは、「Connecting a data source to a Knative channel in a kamelet binding」でコーヒーソースからイベントを受信するのに使用した宛先の例と同じです。
Camel インテグレーションに追加する kamelet と必要なインスタンスパラメーターを把握している。
この手順の kamelet の例では、
log-sink
kamelet です。コードを、シンク kamelet の例 からlog-sink.kamelet.yaml
ファイルという名前のファイルにコピーしてから、以下のコマンドを実行してこれをリソースとして namespace に追加できます。oc apply -f log-sink.kamelet.yaml
手順
Knative チャネルをデータシンクに接続するには、kamelet バインディングを作成します。
任意のエディターで、以下の基本構造で 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 バインディングのソースでは、Knative チャネルまたはブローカーおよび必要なパラメーターを指定します。
以下の例では、Knative チャネルをソースとして指定します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、Knative ブローカーをソースとして指定します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow kamelet バインディングのシンクでは、データコンシューマー kamelet (例: log-sink kamelet) を指定し、kamelet のパラメーターを設定します。以下に例を示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
YAML ファイルを保存します (例:
knative-to-log.yaml
)。 - OpenShift プロジェクトにログインします。
KameletBinding をリソースとして 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] 2021-07-23 13:06:38,111 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] 2021-07-23 13:06:43,273 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] 2021-07-23 13:06:38,111 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] 2021-07-23 13:06:43,273 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 バインディングリソースを削除します。
oc delete kameletbindings/<kameletbinding-name>
以下に例を示します。
oc delete kameletbindings/knative-to-log