充当事件网格源的 Azure 服务总线

本文提供了服务总线事件的属性和架构。 有关事件架构的简介,请参阅 Azure 事件网格事件架构

注意

仅“高级”层服务总线命名空间支持事件集成。 “基本”层和“标准”层不支持与事件网格集成。

可用事件类型

服务总线发出以下事件类型:

事件类型 说明
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.chinacloudapi.cn/{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"
}]

没有侦听器时有死信消息可用

死信队列事件的架构类似。 对于每个有消息但没有活动接收器的死信队列,你会至少收到一个事件。

[{
  "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.chinacloudapi.cn/{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.chinacloudapi.cn/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.chinacloudapi.cn/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 事件源的完整资源路径。 此字段不可写入。 事件网格提供此值。
subject string 事件主题的发布者定义路径。
eventType string 此事件源的一个注册事件类型。
eventTime string 基于提供程序 UTC 时间的事件生成时间。
id string 事件的唯一标识符。
data object Blob 存储事件数据。
dataVersion string 数据对象的架构版本。 发布者定义架构版本。
metadataVersion string 事件元数据的架构版本。 事件网格定义顶级属性的架构。 事件网格提供此值。

数据对象具有以下属性:

属性 类型​​ 说明
namespaceName string 资源所在的服务总线命名空间。
requestUri string 发出此事件的特定队列或订阅的 URI。
entityType string 发出事件的服务总线实体的类型(队列或订阅)。
queueName string 如果订阅队列,则为包含活动消息的队列。 如果使用主题 / 订阅,则为值 null。
topicName string 包含活动消息的服务总线订阅所属的主题。 如果使用队列,则值为 null。
subscriptionName string 包含活动消息的服务总线订阅。 如果使用队列,则值为 null。

教程和操作指南

标题 描述
教程:Azure 服务总线到 Azure 事件网格集成示例 事件网格将消息从服务总线主题发送到函数应用和逻辑应用。
Azure 服务总线到事件网格的集成 概述服务总线与事件网格的集成。

注意

当已启用异地灾难恢复的服务总线命名空间发生故障转移时,辅助命名空间不会向事件网格发出事件。 需要手动添加辅助命名空间的事件网格订阅。

后续步骤