1.3. コネクション内のデータへの操作の適用
Kamelet とイベントチャネルの間に渡すデータで操作を実行する場合は、Kamelet Binding内の中間ステップとしてアクション Kamelets を使用します。たとえば、アクション Kamelet を使用して、データをシリアライズまたはデシリアライズしたり、データをフィルターしたり、フィールドやメッセージヘッダーを挿入したりできます。
フィールドのフィルタリングや追加などの操作操作は、JSON データ(Content-Type ヘッダーが application/json に設定されている場合)でのみ動作します。イベントデータが JSON 以外の形式 (Avro または Protocol Buffers など) を使用する場合は、操作アクションおよびその後のシリアライズステップ (例: protobuf-deserialize-action または avro-deserialize-action Kamelet を参照する) の前にデシリアライズステップ (例: protobuf-serialize-action または avro-serialize-action Kamelet を参照する) を追加して、データの形式を変換する必要があります。接続のデータ形式を変換する方法は、「データ変換 Kamelets」を参照してください。
アクション Kamelets には以下が含まれます。
1.3.1. Kamelet Bindingへの操作の追加 リンクのコピーリンクがクリップボードにコピーされました!
アクション Kamelet を実装するには、Kamelet Bindingファイルの spec セクションで、ソースセクションとシンクセクションの間に steps セクションを追加します。
前提条件
- 「Kamelet Bindingでのソースおよびシンクコンポーネントの接続」で説明されているように、Kamelet Bindingを作成している。
Kamelet Bindingに追加するアクション Kamelet とアクション Kamelet に必要なパラメーターを知っている必要があります。
この手順の例では、
predicate-filter-actionKamelet のパラメーターはstringタイプの式で、コーヒーデータをフィルターして "deep" taste intensity を持つコーヒーだけをログに記録するための JSON パス式を提供します。predicate-filter-actionKamelet では、Kamelet Bindingに Builder トレイト設定プロパティーを設定する必要があります。この例には、イベントデータフォーマットが JSON であるため、この場合はオプションのデシリアライズおよびシリアライズアクションも含まれます。
手順
エディターで
KameletBindingファイルを開きます。たとえば、以下は
coffee-to-log.yamlファイルの内容になります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow sourceセクションの上にintegrationセクションを追加し、(predicate-filter-actionKamelet で必要とされるように) 以下の Builder トレイト設定プロパティーを指定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow sourceセクションとsinkセクションの間にstepsセクションを追加し、アクション Kamelet を定義します。以下は例になります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 変更を保存します。
以下のように、
oc applyコマンドを使用してKameletBindingリソースを更新します。oc apply -f coffee-to-log.yamlCamel K Operator は再生成し、更新された
KameletBindingリソースに基づいて生成する CamelK インテグレーションを実行します。Kamelet Binding のステータスを表示するには、以下を実行します。
oc get kameletbindings対応するインテグレーションのステータスを表示するには、次のコマンドを実行します。
oc get integrationsインテグレーションのログファイルの出力を表示するには、以下を実行します。
kamel logs <integration-name>たとえば、インテグレーション名が
coffee-to-logの場合は、以下のコマンドを使用します。kamel logs coffee-to-logインテグレーションを停止するには、Kamelet Bindingを削除します。
oc delete kameletbindings/<kameletbinding-name>以下は例になります。
oc delete kameletbindings/coffee-to-log