Azure Event Grid の概念Concepts in Azure Event Grid

この記事では、Azure Event Grid の主要な概念について説明します。This article describes the main concepts in Azure Event Grid.

eventsEvents

イベントは、システム内で発生した何かを完全に記述する最小限の情報です。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) サービス レベル アグリーメント (SLA) の対象になっています。An event of size up to 64 KB is covered by General Availability (GA) Service Level Agreement (SLA). 最大 1 MB のサイズのイベントのサポートは現在、プレビュー段階です。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. 各イベント ソースは、1 つまたは複数のイベントの種類に関連付けられます。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 ソースの実装方法については、「Event sources in Azure 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. 発行元は、イベント グリッド トピックを作成し、イベント ソースにトピックが 1 つ必要か、あるいは複数のイベント ソースが必要かを決定します。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 サービスが提供する組み込みのトピックです。System topics are built-in topics provided by Azure services. 発行元がトピックを所有するため、Azure サブスクリプションにシステム トピックは表示されませんが、トピックをサブスクライブすることはできます。You don't see system topics in your Azure subscription because the publisher owns the topics, but you can subscribe to them. サブスクライブするには、イベントを受信するリソースに関する情報を入力します。To subscribe, you provide information about the resource you want to receive events from. リソースにアクセスできる限り、そのイベントをサブスクライブすることができます。As long as you have access to the resource, you can subscribe to its events.

カスタム トピックは、アプリケーションとサード パーティのトピックです。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.

アプリケーションを設計するときに、作成するトピック数を柔軟に決定することができます。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. このような場合は、2 つのカスタム トピックを作成し、イベント ハンドラーが自分と関係のあるトピックをサブスクライブできるようにします。Create two custom topics and let event handlers subscribe to the one that interests them. 小規模なソリューションの場合、すべてのイベントを 1 つのトピックに送信することをお勧めします。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 subscription schema」(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 サービスまたは独自の Webhook を、ハンドラーとして使用できます。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 Webhook イベント ハンドラーでは、ハンドラーが状態コード 200 – OK を返すまでイベントが再試行されます。For HTTP webhook event handlers, the event is retried until the handler returns a status code of 200 – OK. Azure Storage Queue では、Queue サービスがキューにメッセージのプッシュを正常に処理するようになるまで、イベントが再試行されます。For Azure Storage Queue, the events are retried until the Queue service successfully processes the message push into the queue.

サポートされている任意の Event Grid ハンドラーの実装方法については、「Event handlers in Azure 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 security and authentication」(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. 低スループットのシナリオでは 1 つのバッチで対応できますが、高ボリュームのユース ケースでは、効率性を向上するために、発行ごとに複数のイベントを 1 つのバッチにまとめることをお勧めします。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. バッチのサイズは最大 1 MB に指定できます。Batches can be up to 1 MB. 各イベントが引き続き、64 KB (一般提供) または 1 MB (プレビュー) を超えないようにしてください。Each event should still not be greater than 64 KB (General Availability) or 1 MB (preview).

注意

最大 64 KB のサイズのイベントは、一般提供 (GA) サービス レベル アグリーメント (SLA) の対象になっています。An event of size up to 64 KB is covered by General Availability (GA) Service Level Agreement (SLA). 最大 1 MB のサイズのイベントのサポートは現在、プレビュー段階です。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