Azure Event Grid의 개념

이 문서에서는 Azure Event Grid의 주요 개념을 설명합니다.

이벤트

이벤트는 시스템에서 발생하는 무언가를 완벽히 설명하는 가장 작은 크기의 정보입니다. 모든 이벤트에는 이벤트의 원본, 이벤트가 발생한 시간 및 고유 식별자와 같은 일반적인 정보가 있습니다. 또한 모든 이벤트에는 특정 유형의 이벤트에만 관련된 특정 정보도 있습니다. 예를 들어 Azure Storage에서 만드는 새 파일에 대한 이벤트에는 lastTimeModified 값 같은 파일에 대한 세부 정보가 포함되어 있습니다. 또는 Event Hubs 이벤트는 캡처 파일의 URL을 갖습니다.

이벤트에 허용되는 최대 크기는 1MB입니다. 64KB를 초과하는 이벤트는 64KB 단위로 요금이 부과됩니다. 이벤트에 포함되어 전송되는 속성은 Azure Event Grid 이벤트 스키마를 참조하세요.

게시자

게시자는 Event Grid에 이벤트를 보내기로 결정한 사용자나 조직입니다. Microsoft는 여러 가지 Azure 서비스에 대한 이벤트를 게시합니다. 개발자의 자체 애플리케이션에서 이벤트를 게시할 수 있습니다. Azure 외부 서비스를 호스트하는 조직은 Event Grid를 통해 이벤트를 게시할 수 있습니다.

이벤트 원본

이벤트 원본은 이벤트가 발생하는 위치입니다. 각 이벤트 원본은 하나 이상의 이벤트 유형과 관련이 있습니다. 예를 들어 Azure Storage는 이벤트가 생성된 Blob에 대한 이벤트 원본입니다. IoT Hub는 디바이스에서 만든 이벤트에 대한 이벤트 원본입니다. 애플리케이션은 사용자가 정의한 사용자 지정 이벤트에 대한 이벤트 원본입니다. 이벤트 원본은 Event Grid에 이벤트를 보내는 역할을 담당합니다.

지원되는 Event Grid 원본을 구현하는 방법에 대한 내용은 Azure Event Grid의 이벤트 원본을 참조하세요.

토픽

Event Grid 항목에는 원본이 이벤트를 보내는 엔드포인트가 제공됩니다. 게시자는 Event Grid 항목을 만들고 이벤트 원본에 항목이 하나 필요한지 또는 둘 이상 필요한지 여부를 결정합니다. 항목은 관련 이벤트의 컬렉션에 사용됩니다. 특정 이벤트 형식에 응답하려면 구독자가 구독할 토픽을 결정합니다.

시스템 토픽 은 Azure Storage, Azure Event Hubs, Azure Service Bus와 같은 Azure 서비스에서 제공하는 기본 제공 토픽입니다. Azure 구독에서 시스템 토픽을 만들고 구독할 수 있습니다. 자세한 내용은 시스템 토픽 개요를 참조하세요.

사용자 지정 토픽 은 애플리케이션 및 타사 토픽입니다. 사용자 지정 토픽을 만들거나 사용자 지정 토픽에 대한 액세스가 할당되면 구독에 사용자 지정 토픽이 표시됩니다. 자세한 내용은 사용자 지정 토픽을 참조하세요. 애플리케이션을 디자인할 때는 만들려는 토픽 수를 유연하게 결정할 수 있습니다. 대규모 솔루션의 경우 관련된 이벤트의 각 범주에 대한 사용자 지정 토픽을 만듭니다. 사용자 계정을 수정하고 주문을 처리하는 것과 관련된 이벤트를 보내는 애플리케이션을 예로 들 수 있습니다. 이벤트 처리기가 이벤트의 두 범주 모두를 원할 가능성은 낮습니다. 두 개의 사용자 지정 토픽을 만들고 이벤트 처리기가 관심 있는 토픽을 구독할 수 있도록 하세요. 소규모 솔루션의 경우 모든 이벤트를 단일 토픽으로 전송할 수도 있습니다. 원하는 이벤트 유형에 대한 이벤트 구독자를 필터링할 수 있습니다.

파트너 토픽 과 같은 다른 유형의 토픽이 있습니다. 파트너 이벤트 기능을 사용하면 타사 SaaS 공급자가 타사 서비스에서 이벤트를 게시하여 해당 이벤트를 구독할 수 있는 소비자에게 제공할 수 있습니다. SaaS 공급자는 구독자가 이벤트를 소비하는 데 사용하는 토픽 유형인 파트너 토픽 을 표시합니다. 또한 이벤트 게시자와 구독자가 사용하는 리소스의 소유권 및 관심 영역을 구분하여 정리된 게시-구독 모델을 제공합니다.

이벤트 구독

구독은 사용자가 항목의 어떤 이벤트를 받고 싶어하는지를 Event Grid에 알려줍니다. 구독을 만들 때 이벤트 처리를 위한 엔드포인트를 제공합니다. 엔드포인트에 전송되는 이벤트를 필터링할 수 있습니다. 이벤트 형식 또는 제목 패턴으로 필터링할 수 있습니다. 자세한 내용은 Event Grid 구독 스키마를 참조하세요.

구독을 만드는 예는 다음을 참조하세요.

현재 Event Grid 구독을 확보하는 방법에 대한 정보는 쿼리 Event Grid 구독을 참조하세요.

이벤트 구독 만료

해당 날짜 이후 이벤트 구독이 자동으로 만료됩니다. 제한된 시간 동안만 필요한 이벤트 구독 만료를 설정하고 이러한 구독을 정리하는 것에 대해 신경 쓰고 싶지 않습니다. 예를 들어, 시나리오를 테스트하기 위해 이벤트 구독을 만들 때 만료를 설정할 수 있습니다.

만료를 설정하는 예제는 고급 필터가 포함된 구독을 참조하세요.

이벤트 처리기

Event Grid 측면에서 볼 때 이벤트 처리기는 이벤트가 전송된 위치입니다. 처리기는 이벤트를 처리하기 위한 추가 작업을 수행합니다. Event Grid는 여러 가지 처리기 유형을 지원합니다. 지원되는 Azure 서비스를 사용하거나 자체 웹후크를 처리기로 사용할 수 있습니다. 처리기의 형식에 따라 Event Grid는 이벤트의 배달을 보장하는 다양한 메커니즘을 따릅니다. HTTP 웹후크 이벤트 처리기의 경우 처리기가 200 – OK의 상태 코드를 반환할 때까지 이벤트를 다시 시도합니다. Azure Storage Queue의 경우 큐 서비스가 성공적으로 큐에 메시지 푸시를 처리할 때까지 이벤트를 다시 시도합니다.

지원되는 Event Grid 처리기를 구현하는 방법에 대한 내용은 Azure Event Grid의 이벤트 처리기를 참조하세요.

보안

Event Grid는 토픽 구독 및 게시에 대한 보안을 제공합니다. 구독할 때 리소스 또는 Event Grid 토픽에 대해 적절한 사용 권한이 있어야 합니다. 게시할 때 토픽에 대한 SAS 토큰 또는 키 인증이 있어야 합니다. 자세한 내용은 Event Grid 보안 및 인증을 참조하세요.

이벤트 전달

Event Grid에서 이벤트가 구독자의 엔드포인트에서 수신되었는지 확인할 수 없는 경우 이벤트를 다시 배달합니다. 자세한 내용은 Event Grid 메시지 배달 및 재시도를 참조하세요.

일괄 처리

사용자 지정 토픽을 사용하는 경우 이벤트를 항상 배열에 게시해야 합니다. 처리량이 적은 시나리오를 위한 일괄 처리로 사용할 수 있지만, 볼륨이 큰 사용 사례인 경우 효율을 높일 수 있도록 게시마다 여러 이벤트를 일괄 처리하는 것이 좋습니다. 일괄 처리는 1MB까지 가능하며 이벤트의 최대 크기는 1MB입니다.

다음 단계