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
セクションに追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow たとえば、
coffee-to-log
Kamelet Binding で、ログハンドラーを追加して、エラーがログファイルに送信される最大回数を指定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ファイルを保存します。
1.4.2. エラーハンドラー リンクのコピーリンクがクリップボードにコピーされました!
1.4.2.1. エラーハンドラーなし リンクのコピーリンクがクリップボードにコピーされました!
インテグレーションで発生した失敗を無視する場合は Kamelet Binding に errorHandler
セクションが含まれないようにするか、以下の例に示すように none に設定します。
1.4.2.2. ログエラーハンドラー リンクのコピーリンクがクリップボードにコピーされました!
障害を処理するデフォルトの動作では、ログメッセージを標準出力に送信することです。オプションで、以下の例のように、ログエラーハンドラーを使用して再配信や遅延ポリシーなどの他の動作を指定できます。
1.4.2.3. デッドレターチャネルエラーハンドラー リンクのコピーリンクがクリップボードにコピーされました!
デッドレターチャネルを使用すると、以下の例のように、失敗したイベントを、失敗したイベントの処理方法を定義できる他のコンポーネント (サードパーティーの URI、キュー、別の Kamelet など) にリダイレクトすることができます。
-
endpoint には、
ref
またはuri
を使用できます。Camel K Operator は、kind
、apiVersion
、およびname
の値に応じてref
を解釈します。任意の Kamelet、Kafka Topic チャネル、または Knative 宛先を使用できます。 -
エンドポイントに属するプロパティー(この例では
error-handler
という名前の Kamelet へ)。 - dead-letter-channel エラーハンドラータイプに属する Parameters。
1.4.2.4. Bean エラーハンドラー リンクのコピーリンクがクリップボードにコピーされました!
Bean エラーハンドラーでは、エラーを処理するカスタム Bean を指定して、Error Handler の機能を拡張できます。type
には、ErrorHandlerBuilder の完全修飾名 ErrorHandlerBuilder
を指定します。properties
では、type
に仕様した ErrorHandlerBuilder
が必要とするプロパティーを設定します。
1.4.2.5. Ref エラーハンドラー リンクのコピーリンクがクリップボードにコピーされました!
Ref エラーハンドラーを使用すると、ランタイム時に Camel レジストリーで利用可能になることが予想される Bean を使用できます。以下の例では、my-custom-builder
は実行時に検索する Bean の名前です。