你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
将 Azure 事件网格命名空间(预览版)用作事件网格源
本文提供 Azure 事件网格命名空间事件的属性和架构。 有关事件架构的简介,请参阅 Azure 事件网格事件架构。
可用事件类型
Azure 事件网格命名空间(预览版)发出以下事件类型:
事件类型 | 说明 |
---|---|
Microsoft.EventGrid.MQTTClientSessionConnected | 当 MQTT 客户端的会话连接到事件网格时发布。 |
Microsoft.EventGrid.MQTTClientSessionDisconnected | 当 MQTT 客户端的会话从事件网格断开连接时发布。 |
Microsoft.EventGrid.MQTTClientCreatedOrUpdated | 在事件网格命名空间中创建或更新 MQTT 客户端时发布。 |
Microsoft.EventGrid.MQTTClientDeleted | 从事件网格命名空间删除 MQTT 客户端时发布。 |
示例事件
此示例事件显示当 MQTT 客户端的会话连接到事件网格时引发的事件的架构:
[{
"specversion": "1.0",
"id": "5249c38a-a048-46dd-8f60-df34fcdab06c",
"time": "2023-07-29T01:23:49.6454046Z",
"type": "Microsoft.EventGrid.MQTTClientSessionConnected",
"source": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myrg/providers/Microsoft.EventGrid/namespaces/myns",
"subject": "clients/client1/sessions/session1",
"data": {
"namespaceName": "myns",
"clientAuthenticationName": "client1",
"clientSessionName": "session1",
"sequenceNumber": 1
}
}]
此示例事件显示当 MQTT 客户端的会话与事件网格断开连接时引发的事件的架构:
[{
"specversion": "1.0",
"id": "e30e5174-787d-4e19-8812-580148bfcf7b",
"time": "2023-07-29T01:27:40.2446871Z",
"type": "Microsoft.EventGrid.MQTTClientSessionDisconnected",
"source": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myrg/providers/Microsoft.EventGrid/namespaces/myns",
"subject": "clients/client1/sessions/session1",
"data": {
"namespaceName": "myns",
"clientAuthenticationName": "client1",
"clientSessionName": "session1",
"sequenceNumber": 1,
"disconnectionReason": "ClientInitiatedDisconnect"
}
}]
此示例事件显示在事件网格命名空间中创建或更新 MQTT 客户端时引发的事件的架构:
[{
"specversion": "1.0",
"id": "383d1562-c95f-4095-936c-688e72c6b2bb",
"time": "2023-07-29T01:14:35.8928724Z",
"type": "Microsoft.EventGrid.MQTTClientCreatedOrUpdated",
"source": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myrg/providers/Microsoft.EventGrid/namespaces/myns",
"subject": "clients/client1",
"data": {
"createdOn": "2023-07-29T01:14:34.2048108Z",
"updatedOn": "2023-07-29T01:14:34.2048108Z",
"namespaceName": "myns",
"clientName": "client1",
"clientAuthenticationName": "client1",
"state": "Enabled",
"attributes": {
"attribute1": "value1"
}
}
}]
此示例事件显示当从事件网格命名空间删除 MQTT 客户端时引发的事件的架构:
[{
"specversion": "1.0",
"id": "2a93aaf9-66c2-4f8e-9ba3-8d899c10bf17",
"time": "2023-07-29T01:30:52.5620566Z",
"type": "Microsoft.EventGrid.MQTTClientDeleted",
"source": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myrg/providers/Microsoft.EventGrid/namespaces/myns",
"subject": "clients/client1",
"data": {
"namespaceName": "myns",
"clientName": "client1",
"clientAuthenticationName": "client1"
}
}]
事件属性
所有事件均包含相同的顶级数据:
属性 | 类型 | 说明 |
---|---|---|
id |
字符串 | 事件的唯一标识符。 |
source |
string | 事件源的完整资源路径。 此字段不可写入。 事件网格提供此值。 |
subject |
string | 事件主题的发布者定义路径。 |
type |
string | 此事件源的一个注册事件类型。 |
time |
string | 基于提供程序 UTC 时间的事件生成时间。 |
data |
object | 事件网格命名空间事件数据。 |
specversion |
字符串 | CloudEvents 架构规范版本。 |
数据对象包含以下属性:
属性 | 类型 | 说明 |
---|---|---|
namespaceName |
字符串 | MQTT 客户端已连接或断开连接的事件网格命名空间的名称。 |
clientAuthenticationName |
字符串 | 客户端向服务提供的、用于身份验证的 MQTT 客户端的唯一标识符。 此字符串区分大小写,最多可以包含 128 个字符,支持 UTF-8 字符。 |
clientSessionName |
字符串 | MQTT 客户端会话的唯一标识符。 此字符串区分大小写,最多可以包含 128 个字符,支持 UTF-8 字符。 |
sequenceNumber |
long | 一个数字,帮助指示 MQTT 客户端会话已连接或断开连接事件的顺序。 最新事件的序列号将大于上一个事件。 |
disconnectionReason |
字符串 | MQTT 客户端会话断开连接的原因。 该值可以是断开连接原因表中的某个值。 |
createdOn |
字符串 | 基于提供程序的 UTC 时间创建客户端资源的时间。 |
updatedOn |
字符串 | 基于提供程序的 UTC 时间上次更新客户端资源的时间。 如果客户端资源从未更新过,则此值与“createdOn”属性的值相同 |
clientName |
字符串 | 基于提供程序的 UTC 时间上次更新客户端资源的时间。 如果客户端资源从未更新过,则此值与“createdOn”属性的值相同。 |
state |
字符串 | 客户端的配置状态。 该值可以是 Enabled 或 Disabled。 |
attributes |
字符串 | 分配给客户端资源的键值对属性数组。 |
断开连接原因:
以下列表详细描述了 disconnectionReason 的不同值及其说明:
断开连接原因 | 说明 |
---|---|
ClientAuthenticationError | 客户端因任何身份验证问题(例如,证书已过期、客户端已禁用或客户端配置已更改)而断开连接 |
ClientAuthorizationError | 客户端因任何授权问题(例如,由于主题空间、权限绑定或客户端组的配置发生更改)而断开连接 |
ClientError | 客户端发送了错误的请求,或使用了某个不支持的功能,导致服务终止了连接。 |
ClientInitiatedDisconnect | 客户端通过 DISCONNECT 数据包(对于 MQTT)或关闭 帧(对于基于 WebSocket 的 MQTT)启动了正常断开连接。 |
ConnectionLost | 客户端与服务器之间的连接断开。 |
IpForbidden | IP 筛选器或专用链接配置阻止了客户端的 IP 地址。 |
QuotaExceeded | 客户端超出了一个或多个限制,导致服务终止了连接。 |
ServerError | 连接因意外的服务器错误而终止 |
ServerInitiatedDisconnect | 服务器出于任何操作原因启动了正常断开连接 |
SessionOverflow | 客户端的未确认 QoS1 消息队列达到其限制,导致服务器终止了连接 |
SessionTakenOver | 客户端使用相同的身份验证名称重新连接,导致前一连接终止。 |
后续步骤
- 若要详细了解事件网格系统主题,请参阅系统主题
- 若要了解事件网格命名空间发出的事件及其用法,请参阅 MQTT 客户端生命周期事件。