如何获取Azure IoT Hub设备/孪生的创建日期并实现排序?
获取Azure IoT Hub设备/孪生创建日期的简便方法
目前Azure IoT Hub的设备身份和数字孪生对象确实没有原生内置的创建日期字段,不过有几个比手动监听EventGrid更省心的方案:
查IoT Hub活动日志
IoT Hub会自动记录所有设备创建的操作事件,你可以直接通过活动日志提取创建时间:- 门户端:进入IoT Hub的「活动日志」页面,筛选操作类型为
Microsoft.Devices/IotHubs/devices/write的事件,每条事件的事件时间戳就是对应设备的创建时间,目标资源字段可以匹配设备ID。 - CLI端用命令批量查询:
返回结果里的az monitor activity-log list --resource-group <你的资源组名> --resource <IoT Hub名称> --namespace Microsoft.Devices --operation-name Microsoft.Devices/IotHubs/devices/write --start-time "2024-01-01T00:00:00Z"eventTimestamp就是创建时间,properties.targetResource对应设备ID。
- 门户端:进入IoT Hub的「活动日志」页面,筛选操作类型为
用Azure Resource Graph批量查询
如果你需要一次性获取大量设备的创建时间,Azure Resource Graph是最高效的方式,它会同步存储设备的创建时间:
示例Kusto查询语句(可以在Azure门户的「资源Graph资源管理器」中执行):resources | where type == "microsoft.devices/iothubs/devices" | project 设备ID = name, 创建时间 = properties.createdTime, IoT Hub名称 = split(id, '/')[8]注意:数据同步有轻微延迟,但基本能满足需求。
自动化EventGrid方案
如果还是想给数字孪生加自定义createdAt标签,别手动操作——把逻辑封装成Azure Function,让它自动监听DeviceCreated事件,收到事件后直接调用孪生API写入createdAt字段。部署一次之后,所有新设备都会自动完成字段设置,不用再手动干预。
内容的提问来源于stack exchange,提问作者Delapouite
相关产品推荐
相关产品推荐

