Azure Event Grid의 개념Concepts in Azure Event Grid

이 문서에서는 Azure Event Grid의 주요 개념을 설명합니다.This article describes the main concepts in Azure Event Grid.

이벤트Events

이벤트는 시스템에서 발생하는 무언가를 완벽히 설명하는 가장 작은 크기의 정보입니다.An event is the smallest amount of information that fully describes something that happened in the system. 모든 이벤트에는 이벤트의 원본, 이벤트가 발생한 시간 및 고유 식별자와 같은 일반적인 정보가 있습니다.Every event has common information like: source of the event, time the event took place, and unique identifier. 또한 모든 이벤트에는 특정 유형의 이벤트에만 관련된 특정 정보도 있습니다.Every event also has specific information that is only relevant to the specific type of event. 예를 들어 Azure Storage에서 만드는 새 파일에 대한 이벤트에는 lastTimeModified 값과 같은 파일에 대한 세부 정보가 포함되어 있습니다.For example, an event about a new file being created in Azure Storage has details about the file, such as the lastTimeModified value. 또는 Event Hubs 이벤트는 캡처 파일의 URL을 갖습니다.Or, an Event Hubs event has the URL of the Capture file.

최대 64 KB 크기의 이벤트는 GA (일반 공급) Service Level Agreement(서비스 수준 약정) (SLA)에서 다룹니다.An event of size up to 64 KB is covered by General Availability (GA) Service Level Agreement (SLA). 최대 1mb 크기의 이벤트에 대 한 지원은 현재 미리 보기 상태입니다.The support for an event of size up to 1 MB is currently in preview. 64 KB를 초과 하는 이벤트는 64 KB 단위로 요금이 부과 됩니다.Events over 64 KB are charged in 64-KB increments.

이벤트에 포함되어 전송되는 속성은 Azure Event Grid 이벤트 스키마를 참조하세요.For the properties that are sent in an event, see Azure Event Grid event schema.

게시자Publishers

게시자는 Event Grid에 이벤트를 보내기로 결정한 사용자나 조직입니다.A publisher is the user or organization that decides to send events to Event Grid. Microsoft는 여러 가지 Azure 서비스에 대한 이벤트를 게시합니다.Microsoft publishes events for several Azure services. 사용자의 자체 애플리케이션에서 이벤트를 게시할 수 있습니다.You can publish events from your own application. Azure 외부 서비스를 호스트하는 조직은 Event Grid를 통해 이벤트를 게시할 수 있습니다.Organizations that host services outside of Azure can publish events through Event Grid.

이벤트 원본Event sources

이벤트 원본은 이벤트가 발생하는 위치입니다.An event source is where the event happens. 각 이벤트 원본은 하나 이상의 이벤트 유형과 관련이 있습니다.Each event source is related to one or more event types. 예를 들어 Azure Storage는 이벤트가 생성된 Blob에 대한 이벤트 원본입니다.For example, Azure Storage is the event source for blob created events. IoT Hub는 디바이스에서 만든 이벤트에 대한 이벤트 원본입니다.IoT Hub is the event source for device created events. 애플리케이션은 사용자가 정의한 사용자 지정 이벤트에 대한 이벤트 원본입니다.Your application is the event source for custom events that you define. 이벤트 원본은 Event Grid에 이벤트를 보내는 역할을 담당합니다.Event sources are responsible for sending events to Event Grid.

지원되는 Event Grid 원본을 구현하는 방법에 대한 내용은 Azure Event Grid의 이벤트 원본을 참조하세요.For information about implementing any of the supported Event Grid sources, see Event sources in Azure Event Grid.

토픽Topics

Event Grid 항목에는 원본이 이벤트를 보내는 엔드포인트가 제공됩니다.The event grid topic provides an endpoint where the source sends events. 게시자는 Event Grid 항목을 만들고 이벤트 원본에 항목이 하나 필요한지 또는 둘 이상 필요한지 여부를 결정합니다.The publisher creates the event grid topic, and decides whether an event source needs one topic or more than one topic. 항목은 관련 이벤트의 컬렉션에 사용됩니다.A topic is used for a collection of related events. 특정 이벤트 형식에 응답하려면 구독자가 구독할 토픽을 결정합니다.To respond to certain types of events, subscribers decide which topics to subscribe to.

시스템 항목은 Azure Storage, Azure Event Hubs 및 Azure Service Bus와 같은 Azure 서비스에서 제공 하는 기본 제공 항목입니다.System topics are built-in topics provided by Azure services such as Azure Storage, Azure Event Hubs, and Azure Service Bus. Azure 구독에서 시스템 항목을 만들고 구독할 수 있습니다.You can create system topics in your Azure subscription and subscribe to them. 자세한 내용은 시스템 항목 개요를 참조 하세요.For more information, see Overview of system topics.

사용자 지정 토픽은 애플리케이션 및 타사 토픽입니다.Custom topics are application and third-party topics. 사용자 지정 항목을 만들거나 사용자 지정 항목에 대한 액세스가 할당되면 구독에 사용자 지정 항목이 표시됩니다.When you create or are assigned access to a custom topic, you see that custom topic in your subscription. 자세한 내용은 사용자 지정 항목을 참조 하세요.For more information, see Custom topics.

애플리케이션을 디자인할 때는 만들려는 토픽 수를 유연하게 결정할 수 있습니다.When designing your application, you have flexibility when deciding how many topics to create. 대규모 솔루션의 경우 관련된 이벤트의 각 범주에 대한 사용자 지정 토픽을 만듭니다.For large solutions, create a custom topic for each category of related events. 사용자 계정을 수정하고 주문을 처리하는 것과 관련된 이벤트를 보내는 애플리케이션을 예로 들 수 있습니다.For example, consider an application that sends events related to modifying user accounts and processing orders. 이벤트 처리기가 이벤트의 두 범주 모두를 원할 가능성은 낮습니다.It's unlikely any event handler wants both categories of events. 두 개의 사용자 지정 토픽을 만들고 이벤트 처리기가 관심 있는 토픽에 구독할 수 있도록 합니다.Create two custom topics and let event handlers subscribe to the one that interests them. 소규모 솔루션의 경우 모든 이벤트를 단일 토픽으로 전송할 수도 있습니다.For small solutions, you might prefer to send all events to a single topic. 원하는 이벤트 유형에 대한 이벤트 구독자를 필터링할 수 있습니다.Event subscribers can filter for the event types they want.

이벤트 구독Event subscriptions

구독은 사용자가 항목의 어떤 이벤트를 받고 싶어하는지를 Event Grid에 알려줍니다.A subscription tells Event Grid which events on a topic you're interested in receiving. 구독을 만들 때 이벤트 처리를 위한 엔드포인트를 제공합니다.When creating the subscription, you provide an endpoint for handling the event. 엔드포인트에 전송되는 이벤트를 필터링할 수 있습니다.You can filter the events that are sent to the endpoint. 이벤트 형식 또는 제목 패턴으로 필터링할 수 있습니다.You can filter by event type, or subject pattern. 자세한 내용은 Event Grid 구독 스키마를 참조하세요.For more information, see Event Grid subscription schema.

구독을 만드는 예는 다음을 참조하세요.For examples of creating subscriptions, see:

현재 Event Grid 구독을 확보하는 방법에 대한 정보는 쿼리 Event Grid 구독을 참조하세요.For information about getting your current event grid subscriptions, see Query Event Grid subscriptions.

이벤트 구독 만료Event subscription expiration

해당 날짜 이후 이벤트 구독이 자동으로 만료됩니다.The event subscription is automatically expired after that date. 제한된 시간 동안만 필요한 이벤트 구독 만료를 설정하고 이러한 구독을 정리하는 것에 대해 신경 쓰고 싶지 않습니다.Set an expiration for event subscriptions that are only needed for a limited time and you don't want to worry about cleaning up those subscriptions. 예를 들어, 시나리오를 테스트하기 위해 이벤트 구독을 만들 때 만료를 설정할 수 있습니다.For example, when creating an event subscription to test a scenario, you might want to set an expiration.

만료를 설정하는 예제는 고급 필터가 포함된 구독을 참조하세요.For an example of setting an expiration, see Subscribe with advanced filters.

이벤트 처리기Event handlers

Event Grid 측면에서 볼 때 이벤트 처리기는 이벤트가 전송된 위치입니다.From an Event Grid perspective, an event handler is the place where the event is sent. 처리기는 이벤트를 처리하기 위한 추가 작업을 수행합니다.The handler takes some further action to process the event. Event Grid는 여러 가지 처리기 유형을 지원합니다.Event Grid supports several handler types. 지원되는 Azure 서비스를 사용하거나 자체 웹후크를 처리기로 사용할 수 있습니다.You can use a supported Azure service or your own webhook as the handler. 처리기의 형식에 따라 Event Grid는 이벤트의 배달을 보장하는 다양한 메커니즘을 따릅니다.Depending on the type of handler, Event Grid follows different mechanisms to guarantee the delivery of the event. HTTP 웹후크 이벤트 처리기의 경우 처리기가 200 – OK의 상태 코드를 반환할 때까지 이벤트를 다시 시도합니다.For HTTP webhook event handlers, the event is retried until the handler returns a status code of 200 – OK. Azure Storage Queue의 경우 큐 서비스가 성공적으로 큐에 메시지 푸시를 처리할 때까지 이벤트를 다시 시도합니다.For Azure Storage Queue, the events are retried until the Queue service successfully processes the message push into the queue.

지원되는 Event Grid 처리기를 구현하는 방법에 대한 내용은 Azure Event Grid의 이벤트 처리기를 참조하세요.For information about implementing any of the supported Event Grid handlers, see Event handlers in Azure Event Grid.

보안Security

Event Grid는 토픽 구독 및 게시에 대한 보안을 제공합니다.Event Grid provides security for subscribing to topics, and publishing topics. 구독할 때 리소스 또는 Event Grid 토픽에 대해 적절한 사용 권한이 있어야 합니다.When subscribing, you must have adequate permissions on the resource or event grid topic. 게시할 때 토픽에 대한 SAS 토큰 또는 키 인증이 있어야 합니다.When publishing, you must have a SAS token or key authentication for the topic. 자세한 내용은 Event Grid 보안 및 인증을 참조하세요.For more information, see Event Grid security and authentication.

이벤트 전달Event delivery

Event Grid에서 이벤트가 구독자의 엔드포인트에서 수신되었는지 확인할 수 없는 경우 이벤트를 다시 배달합니다.If Event Grid can't confirm that an event has been received by the subscriber's endpoint, it redelivers the event. 자세한 내용은 Event Grid 메시지 배달 및 재시도를 참조하세요.For more information, see Event Grid message delivery and retry.

일괄 처리Batching

사용자 지정 토픽을 사용하는 경우 이벤트를 항상 배열에 게시해야 합니다.When using a custom topic, events must always be published in an array. 처리량이 적은 시나리오를 위한 일괄 처리로 사용할 수 있지만, 볼륨이 큰 사용 사례인 경우 효율을 높일 수 있도록 게시마다 여러 이벤트를 일괄 처리하는 것이 좋습니다.This can be a batch of one for low-throughput scenarios, however, for high volume use cases, it's recommended that you batch several events together per publish to achieve higher efficiency. 일괄 처리의 최대 크기는 1MB입니다.Batches can be up to 1 MB. 각 이벤트는 여전히 64 KB (일반 공급) 또는 1mb (미리 보기) 보다 크지 않아야 합니다.Each event should still not be greater than 64 KB (General Availability) or 1 MB (preview).

참고

최대 64 KB 크기의 이벤트는 GA (일반 공급) Service Level Agreement(서비스 수준 약정) (SLA)에서 다룹니다.An event of size up to 64 KB is covered by General Availability (GA) Service Level Agreement (SLA). 최대 1mb 크기의 이벤트에 대 한 지원은 현재 미리 보기 상태입니다.The support for an event of size up to 1 MB is currently in preview. 64 KB를 초과 하는 이벤트는 64 KB 단위로 요금이 부과 됩니다.Events over 64 KB are charged in 64 KB increments.

다음 단계Next steps