作为事件网格源的 Azure 服务总线

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

注释

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

可用事件类型

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

事件类型 DESCRIPTION
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"
}]

事件属性

事件具有以下顶级数据:

资产 类型 DESCRIPTION
topic 字符串 事件源的完整资源路径。 此字段不可写入。 事件网格提供此值。
subject 字符串 定义了发布者的事件主题路径。
eventType 字符串 该事件源的其中一种注册事件类型。
eventTime 字符串 事件生成的时间是基于提供者的 UTC 时间。
id 字符串 事件的唯一标识符。
data 物体 服务总线事件数据。
dataVersion 字符串 数据对象的架构版本。 发布者定义架构版本。
metadataVersion 字符串 事件元数据的架构版本。 事件网格定义顶级属性的架构。 事件网格提供此值。

数据对象具有以下属性:

资产 类型 DESCRIPTION
namespaceName 字符串 资源所在的服务总线命名空间。
requestUri 字符串 发出事件的特定队列或订阅项的 URI。
entityType 字符串 发出事件的服务总线实体类型(队列或订阅)。
queueName 字符串 如果是订阅队列,则该队列包含活动消息。 如果使用主题/订阅,则值为 null。
topicName 字符串 包含活动消息的服务总线订阅属于的主题。 如果使用队列,则值为 null。
subscriptionName 字符串 包含活动消息的服务总线订阅。 如果使用队列,则值为 null。

教程和作方法

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

注释

Geo-DR 启用的服务总线命名空间发生故障转移时,备用命名空间不会向事件网格发出事件。 需要手动添加辅助命名空间的事件网格订阅。

后续步骤