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 サブスクリプションを手動で追加する必要があります。
次のステップ
- Azure Event Grid の概要については、Event Grid の紹介に関する記事を参照してください。
- Azure Event Grid サブスクリプションの作成の詳細については、Event Grid サブスクリプション スキーマに関する記事を参照してください。
- Service Bus での Azure Event Grid の使用に関して詳しくは、「Azure Service Bus と Event Grid の統合の概要」をご覧ください。
- Functions または Logic Apps で Service Bus イベントを受信してみてください。