14.2. 이벤트 변환의 일반적인 사용 사례


EventTransform 을 사용하면 시스템 요구 사항에 따라 다양한 방식으로 이벤트를 조작하고 조정할 수 있습니다. 가장 일반적인 사용 사례는 다음과 같습니다.

14.2.1. 필드 추출

이벤트 페이로드에서 특정 필드를 추출하여 CloudEvent 속성으로 노출할 수 있습니다. 이렇게 하면 이벤트를 더 쉽게 필터링하고 라우팅할 수 있습니다.

이벤트 페이로드에서 사용자 ID 추출의 예

apiVersion: eventing.knative.dev/v1alpha1
kind: EventTransform
metadata:
  name: extract-user-id
spec:
  jsonata:
    expression: |
      {
        "specversion": "1.0",
        "id": id,
        "type": "user.extracted",
        "source": "transform.user-extractor",
        "time": time,
        "userid": data.user.id,
        "data": $
      }
Copy to Clipboard Toggle word wrap

14.2.2. 이벤트 형식 변환

이벤트 구조를 다양한 소비자 시스템과 호환되도록 다른 형식으로 변환할 수 있습니다.

주문 이벤트를 고객 중심 형식으로 변환하는 예

apiVersion: eventing.knative.dev/v1alpha1
kind: EventTransform
metadata:
  name: format-converter
spec:
  sink:
    ref:
      apiVersion: serving.knative.dev/v1
      kind: Service
      name: destination-service
  jsonata:
    expression: |
      {
        "specversion": "1.0",
        "id": id,
        "type": "order.converted",
        "source": "transform.format-converter",
        "time": time,
        "data": {
          "orderId": data.id,
          "customer": {
            "name": data.user.fullName,
            "email": data.user.email
          },
          "items": data.items
        }
      }
Copy to Clipboard Toggle word wrap

14.2.3. 이벤트 강화

원래 생산자를 변경하지 않고도 환경 또는 리전과 같은 고정 또는 동적 메타데이터를 이벤트에 추가할 수 있습니다.

이벤트에 환경 및 지역 메타데이터 추가 예

apiVersion: eventing.knative.dev/v1alpha1
kind: EventTransform
metadata:
  name: event-enricher
spec:
  jsonata:
    expression: |
      {
        "specversion": "1.0",
        "id": id,                     /* Add the "id", "type", "source", and "time" attributes based on the input JSON object fields */
        "type": type,
        "source": source,
        "time": time,
        "environment": "production",  /* Add fixed environment and region attributes to the event metadata */
        "region": "us-west-1",
        "data": $                     /* Add the event transform input JSON body as CloudEvent "data" field */
      }
Copy to Clipboard Toggle word wrap

14.2.4. 이벤트 응답 응답 변환

싱크로 전송된 요청뿐만 아니라 싱크에서 수신된 응답을 변환하여 엔드 투 엔드 이벤트 셰이핑을 활성화할 수 있습니다.

요청 및 응답 메시지 둘 다 변환의 예

apiVersion: eventing.knative.dev/v1alpha1
kind: EventTransform
metadata:apiVersion: eventing.knative.dev/v1alpha1
kind: EventTransform
metadata:
  name: request-reply-transform
spec:
  sink:
    ref:
      apiVersion: serving.knative.dev/v1
      kind: Service
      name: processor-service
  jsonata:
    expression: |
      # Request transformation
      {
        "specversion": "1.0",
        "id": id,
        "type": "request.transformed",
        "source": source,
        "time": time,
        "data": data
      }
  reply:
    jsonata:
      expression: |
        # Reply transformation
        {
          "specversion": "1.0",
          "id": id,
          "type": "reply.transformed",
          "source": "transform.reply-processor",
          "time": time,
          "data": 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