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に追加します。

前提条件

  • 使用するエラーハンドラーポリシーのタイプを知っている必要があります。
  • 既存の KameletBinding YAML ファイルがある。

手順

Kamelet Bindingにエラー処理を実装するには、以下を実行します。

  1. エディターで KameletBinding YAML ファイルを開きます。
  2. 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
  3. ファイルを保存します。