14.3. 이벤트 변환을 위한 배포 패턴


아키텍처 요구 사항에 따라 이벤트 흐름의 다른 지점에서 EventTransform 을 사용할 수 있습니다. 지원되는 패턴은 다음과 같습니다.

14.3.1. Source to Broker 이벤트 변환

이벤트를 Source에서 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. Service 이벤트 변환 트리거

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. 브로커 응답 이벤트 변환

변환된 이벤트를 브로커로 다시 게시하도록 싱크 없이 EventTransform 을 구성할 수 있습니다. 여기서 추가 트리거 또는 소비자로 라우팅할 수 있습니다.

참고

Broker 응답 기능을 사용하는 경우 변환된 이벤트가 EventTransform 을 호출한 동일한 트리거와 일치하지 않는지 확인합니다. 그렇지 않으면 무한 이벤트 루프를 생성할 위험이 있습니다.

Trigger를 사용하여 original.event.type 유형의 이벤트를 필터링하고, EventTransform 을 사용하여 변환한 다음, 변환한 .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은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat