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