14.3. イベント変換のデプロイメントパターン


アーキテクチャーの要件に応じて、イベントフローのさまざまなポイントで EventTransform を使用できます。次のパターンがサポートされています。

14.3.1. ソースからブローカーへのイベント変換

ソースから EventTransform リソースにイベントをルーティングし、変換ロジックを適用してブローカーに転送することで、正規化または強化されたイベントのみが消費用にルーティングされるようにできます。

次の例に示すように、ApiServerSource リソースを設定してイベントを EventTransform リソースに送信し、イベントを変換してデフォルトのブローカーにルーティングできます。

apiVersion: sources.knative.dev/v1
kind: ApiServerSource
metadata:
  name: k8s-events
spec:
  serviceAccountName: event-watcher
  resources:
    - apiVersion: v1
      kind: Event
  sink:
    ref:
      apiVersion: eventing.knative.dev/v1alpha1
      kind: EventTransform
      name: event-transformer
---
apiVersion: eventing.knative.dev/v1alpha1
kind: EventTransform
metadata:
  name: event-transformer
spec:
  sink:
    ref:
      apiVersion: eventing.knative.dev/v1
      kind: Broker
      name: default
  jsonata:
    expression: |
      # transformation expression
Copy to Clipboard Toggle word wrap

14.3.2. トリガーからサービスへのイベント変換

イベントは、Broker Trigger EventTransform Service または Sink を通じてルーティングできます。Broker はすべてのイベントを受信し、Trigger はそれらを属性によってフィルタリングし、EventTransform リソースはフィルタリングされたイベントを再形成または拡充し、Service または Sink は結果を処理します。

元のプロデューサーを変更したり、他のサブスクライバーに影響を与えずに、特定のコンシューマー向けにイベントをカスタマイズできます。変換はフィルタリング後にのみ適用されるため、関連するイベントのみが再形成され、効率が向上し、不要な処理が削減されます。

この設定を使用すると、original.event.type タイプのイベントをフィルタリングし、EventTransform にルーティングして、変換されたイベントをサービスに配信できます。

apiVersion: eventing.knative.dev/v1
kind: Trigger
metadata:
  name: transform-trigger
spec:
  broker: default
  filter:
    attributes:
      type: original.event.type
  subscriber:
    ref:
      apiVersion: eventing.knative.dev/v1alpha1
      kind: EventTransform
      name: event-transformer
---
apiVersion: eventing.knative.dev/v1alpha1
kind: EventTransform
metadata:
  name: event-transformer
spec:
  sink:
    ref:
      apiVersion: serving.knative.dev/v1
      kind: Service
      name: destination-service
  jsonata:
    expression: |
      # transformation expression
Copy to Clipboard Toggle word wrap

14.3.3. Broker 応答イベント変換

シンクなしで EventTransform を設定すると、変換されたイベントを Broker に再公開し、追加の Trigger またはコンシューマーにルーティングできるようになります。

注記

Broker 応答機能を使用する場合は、変換後のイベントが EventTransform を呼び出したトリガーと再度一致しないように注意してください。そうしないと、無限のイベントループが発生する危険があります。

original.event.type タイプのイベントを Trigger でフィルタリングし、EventTransform で変換して、transformed.event.type タイプとしてブローカーに再公開できます。タイプまたは別の属性を更新すると、同じトリガーによって再処理されることなく、イベントが別のトリガーにルーティングされます。

apiVersion: eventing.knative.dev/v1
kind: Trigger
metadata:
  name: transform-trigger
spec:
  broker: default
  filter:
    attributes:
      type: original.event.type
  subscriber:
    ref:
      apiVersion: eventing.knative.dev/v1alpha1
      kind: EventTransform
      name: event-transformer
---
apiVersion: eventing.knative.dev/v1alpha1
kind: EventTransform
metadata:
  name: event-transformer
spec:
  # No sink specified - reply to Broker
  jsonata:
    expression: |
      {
        "specversion": "1.0",
        "id": id,
        "time": time,
        "type": "transformed.event.type",
        "source": "transform.event-transformer",
        "data": $
      }
Copy to Clipboard Toggle word wrap
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat