14.5. 일반적인 변환 패턴
이벤트 데이터를 효과적으로 형성하는 데 일반적인 JSONata 변환 패턴을 활용하여 이벤트를 보존, 추출, 재구성 또는 조건부로 수정할 수 있습니다.
14.5.1. 원래 이벤트 구조를 보존 링크 복사링크가 클립보드에 복사되었습니다!
나머지 이벤트를 변경하지 않고 유지하면서 속성을 추가하거나 조정할 수 있으므로 다운스트림 소비자가 최소한의 수정으로 원래 데이터를 수신할 수 있습니다.
원래 이벤트 구조를 유지하면서 정적 특성을 추가하는 예
14.5.2. 특성으로 필드 추출 링크 복사링크가 클립보드에 복사되었습니다!
페이로드에서 최상위 CloudEvent 속성으로 값을 승격하여 필터링 및 라우팅을 더 쉽게 수행할 수 있습니다.
페이로드에서 사용자 ID 및 리전을 추출하여 속성으로 노출하는 예
JSONata에서 $ 기호는 전체 입력 오브젝트를 나타냅니다. data: $ 는 선택한 필드를 승격하는 동안 원래 이벤트 페이로드를 유지합니다.
14.5.3. 이벤트 데이터 재구성 링크 복사링크가 클립보드에 복사되었습니다!
JSONata를 사용하여 페이로드를 재구성하고 필드 이름 변경, 오브젝트 중첩 및 계산을 수행하여 다른 시스템에서 필요한 스키마로 이벤트를 변환합니다.
주문 이벤트를 재구성하고 총 항목 값을 계산하는 예
위의 변환과 이 JSON 개체가 입력으로 제공됩니다.
변환은 다음 출력을 생성합니다.
이 패턴을 사용하여 특정 구조 또는 계산된 필드가 필요한 API와 통합합니다.
14.5.4. 조건부 변환 링크 복사링크가 클립보드에 복사되었습니다!
JSONata를 사용하면 조건부 논리를 변환에 직접 포함시켜 특성 또는 페이로드 값을 기반으로 동적 이벤트 셰이핑을 활성화할 수 있습니다.
조건에 따라 다양한 유형 및 우선순위 적용 예
다음 예제에서는 다음을 수행합니다.
-
이벤트 유형이
order.created인 경우 새 유형은new.order가 됩니다. 그렇지 않으면updated.order로 설정됩니다. -
페이로드의 총 필드가 1000보다 크면 값이
high인우선순위속성이 추가됩니다. 그렇지 않으면normal로 설정됩니다.