View a markdown version of this page

사용자 지정 이벤트 버스에 이벤트 게시 - Amazon EventBridge

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

사용자 지정 이벤트 버스에 이벤트 게시

PutEvents 또는 두 API 작업 중 하나를 사용하여 사용자 지정 이벤트 버스에 이벤트를 게시합니다PutRawEvents. 선택한 작업은 전달된 이벤트의 모양을 수정하며,이 모양은 버스에 대한 모든 필터, 변환기 및 대상 파라미터를 작성하는 방법을 결정합니다. 첫 번째 구독자를 작성하기 전에를 선택합니다. 두 가지 셰이프는 단원을 참조하십시오이벤트 구조: 데이터, 메타데이터 및 시스템 메타데이터.

두 작업은 한 가지 종류의 이벤트를 생성하며 EventBridge는 이벤트가 버스에 있으면 이를 동일하게 처리합니다. PutEvents는에 대한 편의를 제공합니다. PutRawEvents EventBridge는 항목의 Source, DetailTypeDetail, 및 기타 필드를 가져와서 JSON 봉투를 빌드하고 해당 봉투를 콘텐츠 유형이 인 JSON 페이로드로 저장합니다application/eventbridge+json. 그때부터 필터링, 변환, 순서 지정, 중복 제거, 보존 및 전송 작업은에 게시된 JSON 이벤트와 정확히 동일합니다PutRawEvents. 구독자가 볼 수 있는 유일한 차이점은 필드가 있는 위치, 즉의 경우의 상단PutRawEvents,의 Data 경우 봉투 Data.detail 내부의 아래에 있는 위치입니다PutEvents. Avro, Protobuf 및 불투명 페이로드는 섹션을 참조하세요지원되는 콘텐츠 유형: JSON, Avro, Protobuf 및 원시 바이트.

PutEvents PutRawEvents
페이로드 필드 Detail, JSON 문자열 Data, 모든 형식의 바이트
각 항목에 필요 Source, DetailType Data, SystemMetadata.ContentType
콘텐츠 유형 EventBridge에서 로 설정 application/eventbridge+json 사용자가 설정: application/json, application/avroapplication/protobuf, 또는 application/octet-stream. 지원되는 콘텐츠 유형: JSON, Avro, Protobuf 및 원시 바이트 섹션을 참조하세요.
자체 메타데이터 사용할 수 없음 Metadata, 최대 100개의 키로 구성된 맵
입력 순서 지정 및 중복 제거 SystemMetadata.EventGroupId, SystemMetadata.DeduplicationId 동일한 두 필드
사용 상황 이벤트가 JSON이고 사용자 지정 이벤트 버스 - Classic에서 생성하는 것과 동일한 봉투를 원하는 경우 페이로드가 이진 또는 비 JSON이거나, 자체 메타데이터 키가 필요하거나, 페이로드를 전송된 그대로 전송하려는 경우

APIs 게시

두 작업 모두 요청당 1~100개의 항목을 일괄 처리하고 요청 순서대로 항목당 하나의 결과를 반환합니다. EventBridge는 각 항목을 자체적으로 수락하거나 거부합니다. 거부된 항목에는 ErrorMessage 대신 ErrorCode 및가 SuccessCode포함되며 동일한 요청의 다른 항목은 영향을 받지 않습니다. 함께 속하고 HTTP 상태만 읽는 대신 모든 결과를 읽는 배치 항목입니다. 단원을 참조하십시오응답 읽기. 두 호출 모두 계정에 대한 하나의 게시 속도 예산에서 가져오며 버스 자체에는 모든 게시자 및 이벤트 소스를 계산하는 초당 수집 할당량이 있습니다. 섹션을 참조하세요사용자 지정 이벤트 버스 할당량.

PutEvents를 사용하여 JSON 이벤트 게시

aws eventsv2 put-events \ --event-bus-arn arn:aws:events:us-east-1:111122223333:event-busv2/orders/EXAMPLE1234567890abcdef \ --entries '[ { "Source": "com.example.orders", "DetailType": "OrderPlaced", "Detail": "{\"orderId\":\"1001\",\"total\":42.5}" } ]'

PutRawEvents를 사용하여 원시 이벤트 게시

Data는 바이너리 필드입니다. 에서 base64 텍스트로 AWS CLI제공합니다. 다음 예제에서는 콘텐츠 유형이 인 원시 바이트와 동일한 JSON 페이로드를 게시application/json하고 메타데이터 키를 추가합니다.

aws eventsv2 put-raw-events \ --event-bus-arn arn:aws:events:us-east-1:111122223333:event-busv2/orders/EXAMPLE1234567890abcdef \ --entries '[ { "Data": "eyJvcmRlcklkIjoiMTAwMSIsInRvdGFsIjo0Mi41fQ==", "Metadata": { "tenant": "acme" }, "SystemMetadata": { "ContentType": "application/json" } } ]'

Avro 또는 Protobuf를 게시하려면를 사용하여 요청에서 스키마 레지스트리의 이름을 지정합니다--schema-registry-configuration. RegistryUri는 AWS Glue 스키마 레지스트리 ARN 또는 Confluent Cloud HTTPS URL입니다. 레지스트리는 버스가 아닌 요청별로 이름이 지정됩니다. 콘텐츠 유형이 인 이벤트는 EventBridge가 디코딩하지 않으므로 레지스트리가 application/octet-stream 필요하지 않습니다.

원시 바이트 게시

EventBridge가 구문 분석하거나 검사하지 않아야 하는 페이로드를 게시하려면에서 Base64-encoded 바이트PutRawEvents를 사용하여를 호출Data하고를 로 SystemMetadata.ContentType 설정합니다application/octet-stream. EventBridge는 전송된 대로 바이트를 저장하고 전송하므로 DATA 필터는 바이트와 일치시킬 수 없습니다. 항목에 설정한 METADATA 키 또는를 사용하여 바이트를 라우팅합니다SYSTEM_METADATA. 구독자의 변환기는 페이로드를에서 Base64 문자열로 봅니다$events.Data. Avro 및 Protobuf에 대한 전송 선택 및 역직렬화된 대안은 섹션을 참조하세요지원되는 콘텐츠 유형: JSON, Avro, Protobuf 및 원시 바이트. 페이로드가 변환기에 어떻게 표시되는지는 섹션을 참조하세요JSONata로 이벤트 변환.

응답 읽기

두 작업 모두 요청과 동일한 순서로 각 항목에 대해 하나의 결과를 반환합니다. 각 결과에는 SuccessCode 또는 ErrorCode 및가 포함됩니다ErrorMessage. 개별 항목이 실패하는 동안 요청이 성공할 수 있으므로 모든 항목을 확인합니다.

SuccessCode는 PUBLISHED 또는 입니다DEDUPLICATED.는 EventBridge가 항목을 이미 수락하고 두 번째 복사본을 저장하지 않은 이벤트의 중복으로 인식했음을 DEDUPLICATED 의미합니다. 오류가 아니라 성공입니다. 자세한 내용은 사용자 지정 이벤트 버스에서 이벤트 주문 및 중복 제거 섹션을 참조하세요.

게시 응답은 EventBridge가 이벤트를 수락했음을 보고합니다. 전송은 보고하지 않습니다. 이벤트가 도착했는지 확인하려면 대상을 확인합니다.

이 섹션은 다음 주제를 포함합니다: