本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
设备连接状态查询
Amazon IoT Fleet Indexing 支持单个设备连接查询,使您可以高效地检索特定设备的连接状态和相关元数据。此功能补充了现有的全队索引和查询功能。
工作方式
设备连接查询支持可用于优化单设备连接状态检索。此 API 提供对最新设备特定连接信息的低延迟、高吞吐量的访问。启用连接索引后,您将可以访问此查询 API,该查询将按标准查询收费。有关更多信息,请参阅Amazon IoT 设备管理定价
特征
借助设备连接查询支持,您可以:
-
使用其查询给定设备的当前连接状态(已连接或已断开)
thingName
。 -
检索其他连接元数据,包括:
-
断开连接原因
-
最近一次连接或断开连接事件的时间戳。
-
注意
实例集索引对设备的连接状态编制索引,该设备的连接 clientId
与注册表中已注册事物的 thingName
相同。
优势
-
低延迟:反映最新的设备连接状态,并提供低延迟以反映来自 IoT Core 的连接状态变化。IoT Core 会在收到设备的断开连接请求后立即确定设备已断开连接,或者设备在未发送断开连接请求的情况下断开连接。在确定客户端断开连接之前,物联网核心将等待配置的保持连接时间的 1.5 倍。在物联网核心确定设备的连接状态变化后,连接状态 API 通常会在不到一秒钟的时间内反映出这些变化。
-
高吞吐量:默认支持每秒 350 个事务 (TPS),并且可以根据要求调整到更高的吞吐量。
-
数据保留:启用舰队索引 (FI) ConnectivityIndexing 模式且事物未被删除时,可以无限期存储事件数据。如果禁用 “连接索引”,则不会保留记录。
注意
如果在此 API 启动之前启用了连接状态索引,则队列索引将在 API 启动后开始跟踪连接状态变化,并根据这些更改反映更新的状态。
先决条件
要使用设备连接查询支持,请执行以下操作:
-
Amazon IoT Core 在您的首选地区注册设备并将其注册到该区域
-
使用连接@@ 索引启用队列索引
注意
如果您已经启用了连接索引,则无需进行其他设置
有关详细的设置说明,请参阅《Amazon IoT 开发人员指南》
示例
aws iot get-thing-connectivity-data --thing-name myThingName
{ "connected": true, "disconnectReason": "NONE", "thingName": "myThingName", "timestamp": "2024-12-19T10:00:00.000000-08:00" }
-
thingName
:请求中指示的设备名称。这也与用于连接的客户端 ID 相匹配。 Amazon IoT Core -
disconnectReason
:断开连接的原因。对于已连接的设备,将为 NONE。 -
connected
: 布尔值 true 表示该设备当前已连接。 -
timestamp
:表示设备最近一次断开连接的时间戳(以毫秒为单位)。
aws iot get-thing-connectivity-data --thing-name myThingName
{ "connected": false, "disconnectReason": "CLIENT_INITIATED_DISCONNECT", "thingName": "myThingName", "timestamp": "2024-12-19T10:30:00.000000-08:00" }
-
thingName
:请求中指示的设备名称。这也与用于连接的客户端 ID 相匹配。 Amazon IoT Core -
disconnectReason
: 断开连接的原因是 CLIENT_INITIATED_DISCONNECT 表示客户端将断开连接。 Amazon IoT Core -
connected
: 布尔值 false 表示此设备当前已断开连接。 -
timestamp
:表示设备最近一次断开连接的时间戳(以毫秒为单位)。
aws iot get-thing-connectivity-data --thing-name neverConnectedThing
{ "connected": false, "disconnectReason": "UNKNOWN", "thingName": "neverConnectedThing" }
-
thingName
:请求中指示的设备名称。这也与用于连接的客户端 ID 相匹配。 Amazon IoT Core -
disconnectReason
:断开连接的原因。对于从未连接过或队列索引未存储上次断开连接原因的设备,将变为 “未知”。 -
connected
: 布尔值 false 表示此设备当前已断开连接。 -
timestamp
:对于从未连接过的设备或队列索引未存储上次时间戳的设备,不会返回时间戳。