Azure Event Grid의 푸시 배달 - 개념
이 문서에서는 푸시 배달과 관련된 주요 Event Grid 개념을 설명합니다.
참고 항목
네임스페이스를 사용하는 새 리소스 모델과 관련된 Event Grid 개념은 이 개념 문서를 참조하세요.
이벤트
이벤트는 시스템에서 발생하는 무언가를 완벽히 설명하는 가장 작은 크기의 정보입니다. 모든 이벤트에는 이벤트의 source
, 이벤트가 발생한 time
, 고유 식별자와 같은 일반적인 정보가 있습니다. 또한 모든 이벤트에는 특정 유형의 이벤트에만 관련된 특정 정보도 있습니다. 예를 들어 Azure Storage에서 만드는 새 파일에 대한 이벤트에는 lastTimeModified
값 같은 파일에 대한 세부 정보가 포함되어 있습니다. Event Hubs 이벤트는 캡처 파일의 URL
을 갖습니다. Orders 마이크로 서비스의 새 주문에 대한 이벤트에는 주문 상태 표현에 대한 orderId
특성과 URL
특성이 있을 있습니다.
CloudEvents
Event Grid는 JSON 형식의 HTTP 프로토콜 바인딩을 사용하여 CNCF의 개방형 표준 CloudEvents 1.0 사양을 사용합니다. CloudEvents는 특정 요구 사항에 대해 문서화된 확장이 있는 확장 가능한 이벤트 사양입니다. Event Grid를 사용하는 경우 CloudEvents는 잘 문서화된 사용 사례(이벤트, 이벤트 형식 등을 전송하는 모드 등), 확장성, 향상된 상호 운용성 때문에 기본 설정 이벤트 형식입니다. CloudEvents는 이벤트를 게시하고 사용하는 데 필요한 일반적인 이벤트 형식을 제공하여 상호 운용성을 개선합니다. 이를 통해 균일한 도구와 이벤트를 라우트하고 처리하는 표준 방법을 사용할 수 있습니다.
다음 표에서는 현재 지원되는 CloudEvents 사양을 보여 줍니다.
CloudEvents 콘텐츠 모드 | 지원? |
---|---|
구조화된 JSON | 예 |
이진 | 아니요 |
이벤트에 허용되는 최대 크기는 1MB입니다. 64KB를 초과하는 이벤트는 64KB 단위로 요금이 부과됩니다. 이벤트에 전송된 속성은 CloudEvents 스키마를 참조하세요.
다른 형식
Event Grid는 시스템 이벤트 게시자에 대한 독점 Event Grid 스키마 형식도 지원합니다, CloudEvents 형식을 사용하여 이벤트를 배달하도록 Event Grid를 구성할 수 있습니다.
게시자
게시자는 Event Grid에 이벤트를 보내는 애플리케이션입니다. 이벤트가 시작된 애플리케이션과 동일한 애플리케이션인 이벤트 원본일 수 있습니다. Azure 서비스는 Event Grid에 이벤트를 게시하여 서비스에서의 발생 내용을 발표합니다. 개발자의 자체 애플리케이션에서 이벤트를 게시할 수 있습니다. Azure 외부 서비스를 호스트하는 조직은 Event Grid를 통해서도 이벤트를 게시할 수 있습니다.
이벤트 원본
이벤트 원본은 이벤트가 발생하는 위치입니다. 각 이벤트 원본은 하나 이상의 이벤트 유형과 관련이 있습니다. 예를 들어 Azure Storage는 이벤트가 생성된 Blob에 대한 이벤트 원본입니다. IoT Hub는 디바이스에서 만든 이벤트에 대한 이벤트 원본입니다. 애플리케이션은 사용자가 정의한 사용자 지정 이벤트에 대한 이벤트 원본입니다. 이벤트 원본은 Event Grid에 이벤트를 보내는 역할을 담당합니다.
파트너
파트너는 시스템에서 이벤트를 보내 Azure 고객이 사용할 수 있도록 하는 일종의 게시자입니다. 파트너는 일반적으로 고객이 플랫폼 전반에서 이벤트 기반 사용 사례를 실현할 수 있도록 Azure Event Grid와 통합되는 SaaS 또는 ERP 공급자입니다. 파트너는 이벤트를 Azure Event Grid에 게시할 수 있을 뿐만 아니라 이벤트를 수신할 수도 있습니다. 이러한 기능은 파트너 이벤트 기능을 통해 사용할 수 있습니다.
토픽
토픽에는 Event Grid에 게시된 이벤트가 포함됩니다. 일반적으로 관련 이벤트 컬렉션에 토픽 리소스를 사용합니다. 특정 이벤트 형식에 응답하려면 구독자(Azure 서비스 또는 기타 애플리케이션)가 구독할 토픽을 결정합니다. 사용자 지정 토픽, 시스템 토픽, 파트너 토픽과 같은 여러 종류의 토픽이 있습니다.
사용자 지정 토픽
사용자 지정 토픽은 애플리케이션과 함께 사용되는 토픽이기도 합니다. 사용자 지정 애플리케이션에 대한 이벤트 기반 통합을 빌드하도록 설계된 첫 번째 종류의 토픽입니다. 자체적인 리소스이기 때문에 이벤트가 게시되는 자체 엔드포인트를 노출합니다.
사용자 지정 토픽은 푸시 배달을 지원합니다. 요구 사항에 따라 푸시 배달이 올바른 방법인지 결정하려면 끌어오기 또는 푸시 배달을 사용해야 하는 경우를 참조하세요. 사용자 지정 토픽을 참조할 수도 있습니다.
시스템 토픽
시스템 토픽은 Azure Storage, Azure Event Hubs, Azure Service Bus와 같은 Azure 서비스에서 제공하는 기본 제공 토픽입니다. Azure 구독에서 시스템 토픽을 만들고 구독할 수 있습니다. 자세한 내용은 시스템 토픽 개요를 참조하세요.
파트너 항목
파트너 토픽은 파트너가 게시한 이벤트를 구독하는 데 사용되는 일종의 토픽입니다. 이 유형의 통합을 지원하는 기능을 파트너 이벤트라고 합니다. 해당 통합을 통해 파트너 시스템의 이벤트를 사용할 수 있는 파트너 토픽을 받을 수 있습니다. 파트너 토픽이 있으면 다른 항목의 토픽과 마찬가지로 이벤트 구독을 만듭니다.
이벤트 구독
참고 항목
네임스페이스 항목의 이벤트 구독에 대한 자세한 내용은 이 개념 문서를 참조하세요 .
구독은 사용자가 항목의 어떤 이벤트를 받고 싶어하는지를 Event Grid에 알려줍니다. 구독을 만들 때 이벤트 처리를 위한 엔드포인트를 제공합니다. 엔드포인트는 웹후크 또는 Azure 서비스 리소스일 수 있습니다. 엔드포인트에 전송되는 이벤트를 필터링할 수 있습니다. 예를 들어 이벤트 형식 또는 이벤트 제목으로 필터링할 수 있습니다. 자세한 내용은 이벤트 구독 및 CloudEvents 스키마를 참조하세요. 도메인뿐만 아니라 사용자 지정, 시스템, 파트너 토픽에 대한 이벤트 구독에는 동일한 리소스 속성이 있습니다.
도메인뿐만 아니라 사용자 지정, 시스템, 파트너 토픽에 대한 구독을 만드는 예제는 다음을 참조하세요.
- Azure CLI를 사용하여 사용자 지정 토픽 만들기 및 이벤트 구독
- Event Grid에 대한 Azure PowerShell 샘플
- Event Grid를 위한 Azure Resource Manager 템플릿
현재 Event Grid 구독을 확보하는 방법에 대한 정보는 쿼리 Event Grid 구독을 참조하세요.
이벤트 구독 만료
도메인 구독뿐만 아니라 사용자 지정, 시스템, 파트너, 도메인 토픽에 연결된 이벤트 구독의 만료 시간을 설정할 수 있습니다. 해당 날짜 이후 이벤트 구독이 자동으로 만료됩니다. 제한된 시간 동안만 필요한 이벤트 구독 만료를 설정하고 이러한 구독을 정리하는 것에 대해 신경 쓰고 싶지 않습니다. 예를 들어, 시나리오를 테스트하기 위해 이벤트 구독을 만들 때 만료를 설정할 수 있습니다.
만료를 설정하는 예제는 고급 필터가 포함된 구독을 참조하세요.
이벤트 처리기
푸시 배달 사용 시 Event Grid 측면에서 볼 때 이벤트 처리기는 이벤트가 전송된 위치입니다. 처리기는 이벤트를 처리하기 위한 추가 작업을 수행합니다. 푸시 배달을 사용하는 경우 Event Grid는 여러 처리기 유형을 지원합니다. 지원되는 Azure 서비스를 사용하거나 자체 webhook를 처리기로 사용할 수 있습니다. 처리기의 형식에 따라 Event Grid는 이벤트의 배달을 보장하는 다양한 메커니즘을 따릅니다. HTTP 웹후크 이벤트 처리기의 경우 처리기가 200 – OK
의 상태 코드를 반환할 때까지 이벤트를 다시 시도합니다. Azure Storage Queue의 경우 큐 서비스가 성공적으로 큐에 메시지 푸시를 처리할 때까지 이벤트를 다시 시도합니다.
지원되는 Event Grid 처리기로 이벤트를 배달하는 방법에 대한 내용은 Azure Event Grid의 이벤트 처리기를 참조하세요.
보안
Event Grid는 토픽을 구독하고 토픽에 이벤트를 게시할 때 보안을 제공합니다. 구독할 때 Event Grid 토픽에 대해 적절한 사용 권한이 있어야 합니다. 푸시 배달을 사용하는 경우 이벤트 처리기는 Azure 서비스이며 관리 ID를 사용하여 Event Grid를 인증하면 관리 ID에 적절한 RBAC 역할이 있어야 합니다. 예를 들어, Event Hubs에 이벤트를 보내는 경우 이벤트 구독에 사용되는 관리 ID는 Event Hubs 데이터 발신자 역할의 멤버여야 합니다. 게시할 때 토픽에 대한 SAS 토큰 또는 키 인증이 있어야 합니다. 자세한 내용은 Event Grid 보안 및 인증을 참조하세요.
이벤트 전달
푸시 배달 사용 시 Event Grid에서 이벤트가 구독자의 엔드포인트에서 수신되었는지 확인할 수 없는 경우 이벤트를 다시 배달합니다. 자세한 내용은 Event Grid 메시지 배달 및 재시도를 참조하세요.
일괄 처리
사용자 지정 토픽을 사용하는 경우 이벤트를 항상 배열에 게시해야 합니다. 처리량이 낮은 시나리오에 대한 일괄 처리일 수 있습니다.
인라인 이벤트 유형 정의
파트너인 경우 채널을 만들 때 고객에게 제공되는 이벤트 유형을 정의할 수 있습니다. 인라인 이벤트 유형 정의를 사용하는 구독자는 이벤트 구독을 구성할 때 이벤트 유형이 지정된 이벤트를 쉽게 필터링할 수 있습니다.
가용성 영역
Azure 가용성 영역은 로컬 오류를 허용하는 각 Azure 지역 내에서 물리적으로 분리된 위치입니다. 왕복 대기 시간이 2밀리초 미만인 고성능 네트워크로 연결됩니다. 각 가용성 영역은 독립적인 전원, 냉각 및 네트워킹 인프라를 갖춘 하나 이상의 데이터 센터로 구성됩니다. 하나의 영역이 영향을 받는 경우 지역 서비스, 용량 및 고가용성은 나머지 두 영역에서 지원됩니다. 가용성 영역에 대한 자세한 내용은 지역 및 가용성 영역을 참조하세요.
다음 단계
- Event Grid에 대한 소개는 Event Grid 정보를 참조하세요.
- 사용자 지정 토픽 사용을 시작하려면 Azure Event Grid를 사용하여 사용자 지정 이벤트 만들기 및 라우팅을 참조하세요.