1.4. コネクション内でのエラーの処理
イベントデータの送受信時に実行中のインテグレーションで障害が発生した場合に Camel K Operatorが実行することを指定するには、任意で以下のエラー処理ポリシーのいずれかを Kamelet Binding に追加します。
- No error handler - インテグレーションで発生する障害を無視します。
- Log error handler: ログメッセージを標準出力に送信します。
- Dead letter channel error handler: 問題のあるイベントを、サードパーティーの URI、キュー、または別の Kamelet など、失敗したイベントで特定のロジックを実行できる別のコンポーネントにリダイレクトします。また、デッドレターエンドポイントに送信する前に、複数の回数メッセージエクスチェンジの再配信の試行にも対応しています。
- Bean error handler: エラーを処理するのにカスタム Bean を使用することを指定します。
- Ref error handler: エラーを処理するのに Bean を使用することを指定します。Bean は実行時に Camel レジストリーで利用可能である必要があります。
1.4.1. エラー処理ポリシーの Kamelet Bindingへの追加
ソースとシンク接続間のイベントデータの送受信時のエラーを処理するには、エラーハンドラーポリシーを Kamelet Bindingに追加します。
前提条件
- 使用するエラーハンドラーポリシーのタイプを知っている必要があります。
-
既存の
KameletBindingYAML ファイルがある。
手順
Kamelet Bindingにエラー処理を実装するには、以下を実行します。
-
エディターで
KameletBindingYAML ファイルを開きます。 sink定義の後に、エラーハンドラーセクションをspecセクションに追加します。apiVersion: camel.apache.org/v1alpha1 kind: KameletBinding metadata: name: example-kamelet-binding spec: source: ... sink: ... errorHandler: ...たとえば、
coffee-to-logKamelet Bindingで、ログハンドラーを追加して、エラーがログファイルに送信される最大回数を指定します。apiVersion: camel.apache.org/v1alpha1 kind: KameletBinding metadata: name: coffee-to-log spec: source: ref: kind: Kamelet apiVersion: camel.apache.org/v1alpha1 name: coffee-source properties: period: 5000 sink: ref: kind: Kamelet apiVersion: camel.apache.org/v1alpha1 name: log-sink errorHandler: log: parameters: maximumRedeliveries: 3- ファイルを保存します。