View a markdown version of this page

이벤트 구조: 데이터, 메타데이터 및 시스템 메타데이터 - Amazon EventBridge

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

이벤트 구조: 데이터, 메타데이터 및 시스템 메타데이터

필터, 변환기 및 대상 파라미터는 하나의 주소 지정 모델을 공유합니다. EventBridge는 페이로드Data,와 함께 제공한 Metadata 키, EventBridge가 할당하는 SystemMetadata 필드 PutRawEvents등 세 가지 최상위 이름으로 모든 이벤트를 제공합니다. 자체 필드가 있는 위치는 게시 API에 Data 따라 달라집니다. 두 APIs 동일한 종류의 이벤트를 생성하며 EventBridge는 두 이벤트를 모두 동일한 방식으로 필터링하고 변환합니다. 차이점은 내부에 있는 것뿐입니다Data.

부품 에 게시됨 PutRawEvents 에 게시됨 PutEvents
Data 전송된 그대로의 페이로드 source, detail-type, time및 기타 필드가 있는 봉투입니다. 페이로드는의 값입니다detail.
Metadata 메타데이터 키 존재하지 않음
SystemMetadata EventBridge에서 할당한 필드 EventBridge에서 할당한 필드

JSONata 표현식은 이벤트를 로 간주합니다$events. 동일한 주문 식별자는 API마다 다른 경로에 있습니다.

에 게시됨PutRawEvents:

$events.Data.orderId

에 게시됨PutEvents:

$events.Data.detail.orderId

범위가 인 필터에도 동일한 차이가 적용됩니다DATA. 패턴은의 내용에 대해 작성됩니다Data.

에 게시됨PutRawEvents:

{ "total": [ { "numeric": [ ">", 500 ] } ] }

에 게시됨PutEvents:

{ "detail": { "total": [ { "numeric": [ ">", 500 ] } ] } }
중요

잘못된 셰이프에 대해 작성된 표현식 또는 패턴은 실패하지 않습니다. 아무것도 확인되지 않고, 필터가 이벤트와 일치하지 않으며, 변환기가 출력을 생성하지 않습니다. 필터가 일치하지 않는 구독자는 작동하지 않는 구독자와 동일하게 보입니다. 구독자에게 의존하기 전에 일치하는 이벤트 하나와 그렇지 않은 이벤트를 게시하고 대상에서 두 결과를 모두 확인합니다. 생산자가 두 APIs 모두 사용하여 동일한 버스에 게시하는 경우 각 종류의 트래픽에 자체 구독자를 지정합니다.

SystemMetadata 필드

SystemMetadata는 두 APIs에서 동일하며 EventBridge 자체가 작성하는 이벤트의 유일한 부분입니다. 범위가 일치하는 필터SYSTEM_METADATA와 JSONata 표현식은 이를 로 읽습니다$events.SystemMetadata. 모든 값은 문자열입니다. EventBridge는 값이 없는 필드를 생략하므로 이에 대한 JSONata 참조aws:DeliveryType는 로 평가되며 undefined항상 존재합니다. 다음 표에는 필드가 나열되어 있습니다.

Field값
aws:EventId로 게시자에게 반환된 EventBridge 할당 식별자 EventId
aws:Source, aws:DetailType에 DetailType 대한 항목의 Source 및 PutEvents, 이벤트 소스에 대한 발신 서비스 또는 파트너 및 해당 이벤트 유형입니다. 게시 호출은 로 시작하는 소스를 설정할 수 없으므로 aws.는 Amazon S3가 이벤트를 생성했음을 {"aws:Source":["aws.s3"]} 증명합니다.
aws:DeliveryTypeLIVE 이벤트가 도착했을 때 전송된 이벤트REPLAY의 경우 보존된 기록에서 한 번 읽습니다. 구독자에게 보관된 이벤트 재생 참조
EventGroupId, DeduplicationId게시 시 제공된 대로입니다. 사용자 지정 이벤트 버스에서 이벤트 주문 및 중복 제거 참조
ContentType게시된 콘텐츠 유형: application/eventbridge+json의 경우 PutEventsPutRawEvents,의 경우 항목의 값이므로 EventBridge가 JSON으로 디코딩한 Avro 및 Protobuf 데이터는 여전히 application/avro 또는를 표시합니다. application/protobuf
aws:IngestionTime버스가 이벤트를 수락한 시간
aws:SequenceNumber버스에서 이벤트의 위치입니다. 수집 순서에 따라 증가합니다.
aws:SchemaId, aws:RegistryTypeAvro 또는 Protobuf 페이로드를 역직렬화하는 데 사용되는 스키마 및 레지스트리입니다. 그렇지 않으면 안 됩니다.

Metadata는 PutRawEvents 설정된와 함께 게시된 이벤트에만 존재하며, 다른 모든 이벤트의 경우 비어 있습니다. 의 경우는 Base64 문자열application/octet-streamData입니다. Transformer 표현식은 하나의 이벤트$events이며 범용 대상의 에서만 배열Input입니다. JSONata로 이벤트 변환 섹션을 참조하세요.