本文提供服务总线事件的属性和架构。 有关事件架构的简介,请参阅 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 启用的服务总线命名空间发生故障转移时,备用命名空间不会向事件网格发出事件。 需要手动添加辅助命名空间的事件网格订阅。
后续步骤
- 有关 Azure 事件网格的简介,请参阅什么是事件网格?
- 有关创建 Azure 事件网格订阅的详细信息,请参阅事件网格订阅架构。
- 有关将 Azure 事件网格与服务总线配合使用的详细信息,请参阅 服务总线到事件网格集成概述。
- 尝试 使用 函数 或 Logic Apps 接收服务总线事件。