Azure Event Grid でのカスタム トピック
Event Grid のトピックには、ソースがイベントを送信するエンドポイントが含まれます。 発行元は、イベント グリッド トピックを作成し、イベント ソースにトピックが 1 つ必要か、あるいは複数のトピックが必要かを決定します。 トピックは、関連するイベントのコレクションに使用されます。 サブスクライバーは、特定の種類のイベントに応答するために、どのトピックをサブスクライブするかを決定します。
カスタム トピックは、アプリケーションとサード パーティのトピックです。 カスタムのトピックを作成した、またはカスタムのトピックへのアクセスを許可された場合は、サブスクリプション内にそのカスタム トピックが表示されます。 カスタム トピックでは、プッシュ配信がサポートされています。 プルまたはプッシュ配信を使用するタイミングを調査すると、要件に応じてプッシュ配信が適切なアプローチかどうかを判断するのに役立ちます。
アプリケーションを設計するときに、作成するトピック数を決定する必要があります。 比較的大規模なソリューションの場合、関連するイベントのカテゴリごとにカスタム トピックを作成します。 たとえば、ユーザー アカウントを管理するアプリケーションと、顧客の注文に関する別のアプリケーションを考えてみましょう。 すべてのイベント サブスクライバーが両方のアプリケーションのイベントを必要とする可能性は低いです。 懸念事項を分離するには、2 つのトピックを作成します。これは、アプリケーションごとに 1 つずつです。 イベント ハンドラーが要件に従ってトピックをサブスクライブできるようにします。 小規模なソリューションの場合、すべてのイベントを 1 つのトピックに送信することをお勧めします。 イベントのサブスクライバーは、必要なイベントの種類をフィルター処理できます。
イベント スキーマ
カスタム トピックでは、Cloud Events と Event Grid スキーマの 2 種類のイベント スキーマがサポートされています。
クラウド イベント スキーマ
Azure Event Grid は、既定のイベント スキーマに加え、CloudEvents v1.0 および HTTP プロトコル バインディングの JSON 実装のイベントをネイティブでサポートします。 CloudEvents は、イベント データを記述するためのオープンな仕様です。
CloudEvents を使用すると、イベントを発行したり使用したりするための共通のイベント スキーマを提供して、相互運用性を簡略化することができます。 このスキーマを使用すると、ツールを統一したり、イベントのルーティングや処理方法を標準化したり、一般的な方法でイベントを逆シリアル化したりできるようになります。 共通のスキーマを使用することで、プラットフォーム間での作業をより簡単に統合できます。
Note
詳細については、クラウド イベント スキーマに関するページを参照してください。
Event Grid イベント スキーマ
Event Grid イベント スキーマを使用する場合は、データ オブジェクトでアプリケーション固有のプロパティを指定できます。
[
{
"topic": string,
"subject": string,
"id": string,
"eventType": string,
"eventTime": string,
"data":{
object-unique-to-each-publisher
},
"dataVersion": string,
"metadataVersion": string
}
]
Note
詳細については、Event Grid イベント スキーマに関するページを参照してください。
以下のセクションでは、Azure portal、CLI、PowerShell、および Azure Resource Manager (ARM) テンプレートを使用してカスタム トピックを作成するためのチュートリアルへのリンクを示します。
Azure portal のチュートリアル
次のクイックスタートまたはチュートリアルでは、Azure portal を使用して、トピックを作成し、トピックのエンドポイントにイベントを送信し、サポートされている宛先にルーティングする方法について説明します。
タイトル | 説明 |
---|---|
クイック スタート: Azure portal を使ったカスタム イベントの作成とルーティング | ポータルを使ってカスタム イベントを送信する方法を示します。 |
クイック スタート: Azure Queue Storage へのカスタム イベントのルーティング | Queue Storage にカスタム イベントを送信する方法について説明します。 |
方法: カスタム トピックへの投稿 | カスタム トピックにイベントを投稿する方法を示します。 |
Azure CLI のチュートリアル
次のクイックスタートまたはチュートリアルでは、Azure CLI を使用して、トピックを作成し、トピックのエンドポイントにイベントを送信し、サポートされている宛先にルーティングする方法について説明します。
タイトル | 説明 |
---|---|
クイック スタート: Azure CLI を使ったカスタム イベントの作成とルーティング | Azure CLI を使ってカスタム イベントを送信する方法を示します。 |
Azure CLI: Event Grid のカスタム トピックの作成 | カスタム トピックを作成するサンプル スクリプトです。 このスクリプトは、エンドポイントとキーを取得します。 |
Azure CLI: カスタム トピックのイベントのサブスクライブ | カスタム トピックのサブスクリプションを作成するサンプル スクリプトです。 Webhook にイベントを送信します。 |
Azure PowerShell のチュートリアル
次のクイックスタートまたはチュートリアルでは、Azure PowerShell を使用して、トピックを作成し、トピックのエンドポイントにイベントを送信し、サポートされている宛先にルーティングする方法について説明します。
タイトル | 説明 |
---|---|
クイック スタート: Azure PowerShell を使ったカスタム イベントの作成とルーティング | Azure PowerShell を使ってカスタム イベントを送信する方法を示します。 |
PowerShell: Event Grid のカスタム トピックの作成 | カスタム トピックを作成するサンプル スクリプトです。 このスクリプトは、エンドポイントとキーを取得します。 |
PowerShell: カスタム トピックのイベントのサブスクライブ | カスタム トピックのサブスクリプションを作成するサンプル スクリプトです。 Webhook にイベントを送信します。 |
ARM テンプレートのチュートリアル
次のクイックスタートまたはチュートリアルでは、ARM テンプレートを使用して、トピックを作成し、トピックのサブスクリプションを作成する方法について説明します。
タイトル | 説明 |
---|---|
Resource Manager テンプレート: カスタム トピックと Webhook エンドポイント | カスタム トピックとそのカスタム トピックのサブスクリプションを作成する Resource Manager テンプレート。 Webhook にイベントを送信します。 |
Resource Manager テンプレート: カスタム トピックと Event Hubs エンドポイント | カスタム トピックのサブスクリプションを作成する Resource Manager テンプレート。 Azure Event Hubs にイベントを送信します。 |
Note
Azure Digital Twins では、Event Grid で作成するカスタム トピックにイベント通知をルーティングできます。 詳細については、Azure Digital Twins のドキュメントの「エンドポイントとイベント ルート」を参照してください。
関連するコンテンツ
次の記事をご覧ください。