你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

作为事件网格源的 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.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"
}]

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

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

[{
  "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"
}]

事件属性

事件具有以下顶级数据:

资产 类型 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-Replication 文档 ,了解已启用 Geo-Replication 的服务总线命名空间会发生什么情况。

后续步骤