你当前正在访问 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 客户端使用相同的身份验证名称重新连接,导致前一连接终止。

后续步骤