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 Queue Storage へのカスタム イベントのルーティング Queue Storage にカスタム イベントを送信する方法について説明します。
方法: カスタム トピックへの投稿 カスタム トピックにイベントを投稿する方法を示します。

Azure CLI のチュートリアル

タイトル 説明
クイック スタート: Azure CLI を使ったカスタム イベントの作成とルーティング Azure CLI を使ってカスタム イベントを送信する方法を示します。
Azure CLI: Event Grid のカスタム トピックの作成 カスタム トピックを作成するサンプル スクリプトです。 このスクリプトは、エンドポイントとキーを取得します。
Azure CLI: カスタム トピックのイベントのサブスクライブ カスタム トピックのサブスクリプションを作成するサンプル スクリプトです。 Webhook にイベントを送信します。

Azure PowerShell のチュートリアル

タイトル 説明
クイック スタート: Azure PowerShell を使ったカスタム イベントの作成とルーティング Azure PowerShell を使ってカスタム イベントを送信する方法を示します。
PowerShell: Event Grid のカスタム トピックの作成 カスタム トピックを作成するサンプル スクリプトです。 このスクリプトは、エンドポイントとキーを取得します。
PowerShell: カスタム トピックのイベントのサブスクライブ カスタム トピックのサブスクリプションを作成するサンプル スクリプトです。 Webhook にイベントを送信します。

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 のドキュメントの「エンドポイントとイベント ルート」を参照してください。

次のステップ

次の記事をご覧ください。