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

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

注意

プレミアム層の Service Bus 名前空間のみで、イベントの統合がサポートされています。 ベーシック層とスタンダード層では、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 string イベント ソースの完全なリソース パス。 このフィールドは書き込み可能ではありません。 この値は Event Grid によって指定されます。
subject string 発行元が定義したイベントの対象のパス。
eventType string このイベント ソース用に登録されたイベントの種類のいずれか。
eventTime string プロバイダーの UTC 時刻に基づくイベントの生成時刻。
id string イベントの一意識別子。
data object Blob Storage イベントのデータ。
dataVersion string データ オブジェクトのスキーマ バージョン。 スキーマ バージョンは発行元によって定義されます。
metadataVersion string イベント メタデータのスキーマ バージョン。 最上位プロパティのスキーマは Event Grid によって定義されます。 この値は Event Grid によって指定されます。

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

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

チュートリアルと方法

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

Note

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

次のステップ