Event Grid トピックを管理するためのイベント ドメインについてUnderstand event domains for managing Event Grid topics

この記事では、イベント ドメインを使用して、さまざまなビジネス組織、顧客、アプリケーションへのカスタム イベントのフローを管理する方法について説明します。This article describes how to use event domains to manage the flow of custom events to your various business organizations, customers, or applications. イベント ドメインを使用して、次のことを行います。Use event domains to:

  • 大規模なマルチテナントのイベント処理アーキテクチャを管理する。Manage multitenant eventing architectures at scale.
  • 承認と認証を管理する。Manage your authorization and authentication.
  • 各トピックを個別に管理するのではなく、パーティション分割する。Partition your topics without managing each individually.
  • 各トピック エンドポイントへの個別の発行を回避する。Avoid individually publishing to each of your topic endpoints.

イベント ドメインの概要Event domain overview

イベント ドメインは、同じアプリケーションに関連する数多くの Event Grid トピック用の管理ツールです。An event domain is a management tool for large numbers of Event Grid topics related to the same application. 数千の個々のトピックを含めることができるメタ トピックと考えることができます。You can think of it as a meta-topic that can have thousands of individual topics.

イベント ドメインにより、ユーザーは、Azure サービス (Storage や IoT Hub など) によって使用されているものと同じアーキテクチャ を使用して、イベントを発行できます。Event domains make available to you the same architecture used by Azure services (like Storage and IoT Hub) to publish their events. 数千のトピックにイベントを発行できます。They allow you to publish events to thousands of topics. また、ドメインでは、テナントをパーティション分割できるように各トピックの承認と認証を制御できます。Domains also give you authorization and authentication control over each topic so you can partition your tenants.

ユース ケースの例Example use case

例を使えば、イベント ドメインを最も簡単に説明できます。Event domains are most easily explained using an example. Contoso Construction Machinery という会社を経営しているとします。この会社はトラクター、掘削機器、その他の重機を製造しています。Let’s say you run Contoso Construction Machinery, where you manufacture tractors, digging equipment, and other heavy machinery. 経営の一部として、機器のメンテナンス、システムの正常性、契約の更新などについて顧客にリアルタイムの情報をプッシュで提供します。As a part of running the business, you push real-time information to customers about equipment maintenance, systems health, and contract updates. この情報はすべて、アプリ、顧客のエンドポイント、顧客が設定したその他のインフラストラクチャを含むさまざまなエンドポイントに到達します。All of this information goes to various endpoints including your app, customer endpoints, and other infrastructure that customers have set up.

イベント ドメインを使用することで、Contoso Construction Machinery を単一のイベント処理エンティティとしてモデル化することができます。Event domains allow you to model Contoso Construction Machinery as a single eventing entity. 各顧客は、ドメイン内のトピックとして表されます。Each of your customers is represented as a topic within the domain. 認証と承認は Azure Active Directory を使用して処理されます。Authentication and authorization are handled using Azure Active Directory. 各顧客はトピックをサブスクライブし、イベントを自分に配信させることができます。Each of your customers can subscribe to their topic and get their events delivered to them. イベント ドメインを介した管理アクセスにより、確実に自分のトピックにのみアクセスできるようになります。Managed access through the event domain ensures they can only access their topic.

また、すべての顧客イベントを発行できる、単一のエンドポイントが提供されます。It also gives you a single endpoint, which you can publish all of your customer events to. Event Grid では、各トピックにより、そのテナントをスコープとするイベントのみが認識されるようにします。Event Grid will take care of making sure each topic is only aware of events scoped to its tenant.

Contoso Construction の例

アクセス管理Access management

ドメインでは、Azure のロールベースのアクセス制御 (RBAC) を使用して、各トピックの承認と認証を細かく制御することができます。With a domain, you get fine grain authorization and authentication control over each topic via Azure's role-based access control (RBAC). これらのロールを使用することで、アプリケーションの各テナントを、アクセスを許可するトピックにのみ制限することができます。You can use these roles to restrict each tenant in your application to only the topics you wish to grant them access to.

イベント ドメインでの RBAC は、他の Event Grid や Azure でのマネージド アクセス制御の動作と同じように動作します。RBAC in event domains works the same way managed access control works in the rest of Event Grid and Azure. RBAC を使用して、イベント ドメインでカスタム ロール定義を作成して適用します。Use RBAC to create and enforce custom role definitions in event domains.

組み込みロールBuilt in roles

Event Grid には、RBAC がイベント ドメインでより簡単に動作するように、2 つの組み込みロール定義があります。Event Grid has two built-in role definitions to make RBAC easier for working with event domains. EventGrid EventSubscription 共同作成者 (プレビュー) ロールと、EventGrid EventSubscription 閲覧者 (プレビュー) ロールです。These roles are EventGrid EventSubscription Contributor (Preview) and EventGrid EventSubscription Reader (Preview). イベント ドメインでトピックをサブスクライブする必要があるユーザーに、これらのロールを割り当てます。You assign these roles to users who need to subscribe to topics in your event domain. ロールの割り当てのスコープは、ユーザーがサブスクライブする必要があるトピックだけにします。You scope the role assignment to only the topic that users need to subscribe to.

これらのロールについては、Event Grid の組み込みロールに関する記事をご覧ください。For information about these roles, see Built-in roles for Event Grid.

トピックのサブスクライブSubscribing to topics

イベント ドメイン内のトピックでイベントをサブスクライブすることは、カスタム トピックでイベント サブスクリプションを作成したり、Azure サービスからイベントをサブスクライブしたりすることと同じです。Subscribing to events on a topic within an event domain is the same as creating an Event Subscription on a custom topic or subscribing to an event from an Azure service.

ドメイン スコープ サブスクリプションDomain scope subscriptions

イベント ドメインでは、ドメイン スコープ サブスクリプションも許可されます。Event domains also allow for domain-scope subscriptions. イベント ドメインのイベント サブスクリプションでは、イベントの送信先となるトピックに関係なく、ドメインに送信されるすべてのイベントが受信されます。An event subscription on an event domain will receive all events sent to the domain regardless of the topic the events are sent to. ドメイン スコープ サブスクリプションは、管理や監査の目的で役立ちます。Domain scope subscriptions can be useful for management and auditing purposes.

イベント ドメインへの発行Publishing to an event domain

イベント ドメインを作成するときに、Event Grid でトピックを作成した場合と同じような発行エンドポイントが与えられます。When you create an event domain, you're given a publishing endpoint similar to if you had created a topic in Event Grid.

イベント ドメインの任意のトピックにイベントを発行するには、カスタム トピックの場合と同じように、ドメインのエンドポイントにイベントをプッシュします。To publish events to any topic in an Event Domain, push the events to the domain's endpoint the same way you would for a custom topic. 唯一の違いは、イベントの配信先となるトピックを指定する必要があることです。The only difference is that you must specify the topic you'd like the event to be delivered to.

たとえば、次のイベントの配列を発行すると、"id": "1111" のイベントがトピック foo に送信され、"id": "2222" のイベントはトピック bar に送信されます。For example, publishing the following array of events would send event with "id": "1111" to topic foo while the event with "id": "2222" would be sent to topic bar:

[{
  "topic": "foo",
  "id": "1111",
  "eventType": "maintenanceRequested",
  "subject": "myapp/vehicles/diggers",
  "eventTime": "2018-10-30T21:03:07+00:00",
  "data": {
    "make": "Contoso",
    "model": "Small Digger"
  },
  "dataVersion": "1.0"
},
{
  "topic": "bar",
  "id": "2222",
  "eventType": "maintenanceCompleted",
  "subject": "myapp/vehicles/tractors",
  "eventTime": "2018-10-30T21:04:12+00:00",
  "data": {
    "make": "Contoso",
    "model": "Big Tractor"
  },
  "dataVersion": "1.0"
}]

イベント ドメインにより、トピックへの発行が自動的に処理されます。Event domains handle publishing to topics for you. 管理する各トピックに個別にイベントを発行するのではなく、すべてのイベントをドメインのエンドポイントに対して発行することができます。Instead of publishing events to each topic you manage individually, you can publish all of your events to the domain's endpoint. Event Grid によって、各イベントは正しいトピックに確実に送信されます。Event Grid makes sure each event is sent to the correct topic.

制限とクォータLimits and quotas

イベント ドメインに関連した制限とクォータを次に示します。Here are the limits and quotas related to event domains:

  • イベント ドメインあたり 100,000 トピック100,000 topics per event domain
  • Azure サブスクリプションあたり 100 イベント ドメイン100 event domains per Azure subscription
  • イベント ドメイン内のトピックあたり 500 イベント サブスクリプション500 event subscriptions per topic in an event domain
  • 50 のドメイン スコープ サブスクリプション50 domain scope subscriptions
  • 毎秒 5,000 イベントのインジェスト速度 (ドメインへの取り込み)5,000 events per second ingestion rate (into a domain)

これらの制限が実情に沿わない場合は、サポート チケットを開くか、askgrid@microsoft.com 宛てにメールを送信して製品チームにご相談ください。If these limits don't suit you, reach out the product team by opening a support ticket or by sending an email to askgrid@microsoft.com.

価格Pricing

イベント ドメインでは、Event Grid の他のすべての機能で使用されるのと同じ操作価格が使用されます。Event domains use the same operations pricing that all other features in Event Grid use.

イベント ドメインでの操作は、カスタム トピックの場合と同じように動作します。Operations work the same in event domains as they do in custom topics. イベント ドメインへのイベントの各取り込みは 1 回の操作であり、イベントの各配信試行も 1 回の操作となります。Each ingress of an event to an event domain is an operation, and each delivery attempt for an event is an operation.

次の手順Next steps

  • イベント ドメインの設定、トピックの作成、イベント サブスクリプションの作成、イベントの発行の詳細については、イベント ドメインの管理に関するページを参照してください。To learn about setting up event domains, creating topics, creating event subscriptions, and publishing events, see Manage event domains.