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