次の方法で共有


Event Grid ソースとしての Azure Service Bus

この記事では、Service Bus イベントのプロパティとスキーマについて説明します。 イベント スキーマの概要については、「Azure Event Grid イベント スキーマ」を参照してください。

イベント統合をサポートするのは、Premium レベルの Service Bus 名前空間のみです。 Basic レベルと Standard レベルでは、Event Grid との統合はサポートされていません。

使用可能なイベントの種類

Service Bus は、次のイベントの種類を出力します。

イベントの種類 説明
Microsoft.ServiceBus.ActiveMessagesAvailableWithNoListeners 新しいアクティブなメッセージがキューまたはサブスクリプションに到着し、リッスンしている受信者がいない場合に発生します。
Microsoft.ServiceBus.DeadletterMessagesAvailableWithNoListeners 新しいアクティブなメッセージが配信不能キューに到着し、アクティブなリスナーが存在しない場合に発生します。
Microsoft.ServiceBus.ActiveMessagesAvailablePeriodicNotifications キューまたはサブスクリプションにアクティブなメッセージがある場合、その特定のキューまたはサブスクリプションにアクティブなリスナーがある場合でも、30 秒ごとに発生します。 また、アクティブなメッセージ数が 0 からキューまたはサブスクリプションの正の値に移行したときにも発生します。
Microsoft.ServiceBus.DeadletterMessagesAvailablePeriodicNotifications キューまたはサブスクリプションの配信不能エンティティにメッセージがある場合、その特定のキューまたはサブスクリプションの配信不能エンティティにアクティブなリスナーがある場合でも、30 秒ごとに発生します。 また、配信不能メッセージ数が 0 からキューまたはサブスクリプションの配信不能エンティティの正の値に遷移したときにも発生します。

イベントの例

リスナーなしで使用可能なアクティブなメッセージ

このイベントは、キューまたはサブスクリプションにアクティブなメッセージがあり、リッスンしている受信者がいない場合に生成されます。

[{
  "topic": "/subscriptions/{subscription-id}/resourcegroups/{your-rg}/providers/Microsoft.ServiceBus/namespaces/{your-service-bus-namespace}",
  "subject": "topics/{your-service-bus-topic}/subscriptions/{your-service-bus-subscription}",
  "eventType": "Microsoft.ServiceBus.ActiveMessagesAvailableWithNoListeners",
  "eventTime": "2018-02-14T05:12:53.4133526Z",
  "id": "dede87b0-3656-419c-acaf-70c95ddc60f5",
  "data": {
    "namespaceName": "YOUR SERVICE BUS NAMESPACE WILL SHOW HERE",
    "requestUri": "https://{your-service-bus-namespace}.servicebus.windows.net/{your-topic}/subscriptions/{your-service-bus-subscription}/messages/head",
    "entityType": "subscriber",
    "queueName": "QUEUE NAME IF QUEUE",
    "topicName": "TOPIC NAME IF TOPIC",
    "subscriptionName": "SUBSCRIPTION NAME"
  },
  "dataVersion": "1",
  "metadataVersion": "1"
}]

リスナーなしで使用できる配信不能メッセージ

配信不能キュー イベントのスキーマは似ています。 配信不能キューごとに、メッセージがあり、アクティブなレシーバーがないイベントが少なくとも 1 つ発生します。

[{
  "topic": "/subscriptions/{subscription-id}/resourcegroups/{your-rg}/providers/Microsoft.ServiceBus/namespaces/{your-service-bus-namespace}",
  "subject": "topics/{your-service-bus-topic}/subscriptions/{your-service-bus-subscription}",
  "eventType": "Microsoft.ServiceBus.DeadletterMessagesAvailableWithNoListeners",
  "eventTime": "2018-02-14T05:12:53.4133526Z",
  "id": "dede87b0-3656-419c-acaf-70c95ddc60f5",
  "data": {
    "namespaceName": "YOUR SERVICE BUS NAMESPACE WILL SHOW HERE",
    "requestUri": "https://{your-service-bus-namespace}.servicebus.windows.net/{your-topic}/subscriptions/{your-service-bus-subscription}/$deadletterqueue/messages/head",
    "entityType": "subscriber",
    "queueName": "QUEUE NAME IF QUEUE",
    "topicName": "TOPIC NAME IF TOPIC",
    "subscriptionName": "SUBSCRIPTION NAME"
  },
  "dataVersion": "1",
  "metadataVersion": "1"
}]

アクティブなメッセージの利用可能な定期的な通知

このイベントは、特定のキューまたはサブスクリプションにアクティブなメッセージがある場合、その特定のキューまたはサブスクリプションのアクティブなリスナーがある場合でも、定期的に生成されます。

[{
  "topic": "/subscriptions/<subscription id>/resourcegroups/DemoGroup/providers/Microsoft.ServiceBus/namespaces/<YOUR SERVICE BUS NAMESPACE WILL SHOW HERE>",
  "subject": "topics/<service bus topic>/subscriptions/<service bus subscription>",
  "eventType": "Microsoft.ServiceBus.ActiveMessagesAvailablePeriodicNotifications",
  "eventTime": "2018-02-14T05:12:53.4133526Z",
  "id": "dede87b0-3656-419c-acaf-70c95ddc60f5",
  "data": {
    "namespaceName": "YOUR SERVICE BUS NAMESPACE WILL SHOW HERE",
    "requestUri": "https://YOUR-SERVICE-BUS-NAMESPACE-WILL-SHOW-HERE.servicebus.windows.net/TOPIC-NAME/subscriptions/SUBSCRIPTIONNAME/$deadletterqueue/messages/head",
    "entityType": "subscriber",
    "queueName": "QUEUE NAME IF QUEUE",
    "topicName": "TOPIC NAME IF TOPIC",
    "subscriptionName": "SUBSCRIPTION NAME"
  },
  "dataVersion": "1",
  "metadataVersion": "1"
}]

配信不能メッセージの利用可能な定期的な通知

このイベントは、特定のキューまたはサブスクリプションの配信不能エンティティにアクティブなリスナーがある場合でも、特定のキューまたはサブスクリプションに配信不能メッセージがある場合に定期的に生成されます。

[{
  "topic": "/subscriptions/<subscription id>/resourcegroups/DemoGroup/providers/Microsoft.ServiceBus/namespaces/<YOUR SERVICE BUS NAMESPACE WILL SHOW HERE>",
  "subject": "topics/<service bus topic>/subscriptions/<service bus subscription>",
  "eventType": "Microsoft.ServiceBus.DeadletterMessagesAvailablePeriodicNotifications",
  "eventTime": "2018-02-14T05:12:53.4133526Z",
  "id": "dede87b0-3656-419c-acaf-70c95ddc60f5",
  "data": {
    "namespaceName": "YOUR SERVICE BUS NAMESPACE WILL SHOW HERE",
    "requestUri": "https://YOUR-SERVICE-BUS-NAMESPACE-WILL-SHOW-HERE.servicebus.windows.net/TOPIC-NAME/subscriptions/SUBSCRIPTIONNAME/$deadletterqueue/messages/head",
    "entityType": "subscriber",
    "queueName": "QUEUE NAME IF QUEUE",
    "topicName": "TOPIC NAME IF TOPIC",
    "subscriptionName": "SUBSCRIPTION NAME"
  },
  "dataVersion": "1",
  "metadataVersion": "1"
}]

イベントのプロパティ

イベントのトップレベルのデータを次に示します。

プロパティ タイプ 説明
topic ひも イベント ソースの完全なリソース パス。 このフィールドは書き込み可能ではありません。 この値は Event Grid によって指定されます。
subject ひも 発行元が定義したイベントの対象のパス。
eventType ひも このイベント ソースに登録されているイベントの種類の 1 つ。
eventTime ひも プロバイダーの UTC 時刻に基づいてイベントが生成される時刻。
id ひも イベント専用の識別子。
data オブジェクト Service Bus イベント データ。
dataVersion ひも データ オブジェクトのスキーマ バージョン。 パブリッシャーはスキーマのバージョンを定義します。
metadataVersion ひも イベント メタデータのスキーマ バージョン。 Event Grid では、最上位レベルのプロパティのスキーマを定義します。 この値は Event Grid によって指定されます。

データ オブジェクトには、次のプロパティがあります。

プロパティ タイプ 説明
namespaceName ひも リソースが存在する Service Bus 名前空間。
requestUri ひも イベントを生成する特定のキューまたはサブスクリプションへの URI。
entityType ひも イベント (キューまたはサブスクリプション) を出力する Service Bus エンティティの種類。
queueName ひも キューをサブスクライブしている場合は、アクティブなメッセージを含むキュー。 トピック/サブスクリプションを使用する場合は null 値を指定します。
topicName ひも アクティブなメッセージを含む Service Bus サブスクリプションが属しているトピック。 キューを使用する場合は null 値を指定します。
subscriptionName ひも アクティブなメッセージを含む Service Bus サブスクリプション。 キューを使用する場合は null 値を指定します。

チュートリアルとハウツー

タイトル 説明
チュートリアル:Azure Service Bus の Azure Event Grid への統合の例 Event Grid は、Service Bus トピックから関数アプリとロジック アプリにメッセージを送信します。
Azure Service Bus と Event Grid の統合 Service Bus と Event Grid の統合の概要。

Geo-DR 有効になっている Service Bus 名前空間に対してフェールオーバーが発生した場合、セカンダリ名前空間は Event Grid にイベントを出力しません。 セカンダリ名前空間の Event Grid サブスクリプションを手動で追加する必要があります。

次のステップ