Azure IoT Hub Device Provisioning Service介绍
分类: Azure物联网 ◆ 标签: #Azure #Azure IoT Device Provisioning Service # ◆ 发布于: 2023-06-14 20:07:59
本章我们来快速的学习一下Azure Iot Hub Device Provisioning Service, 即DPS服务。DPS服务是一个针对于Azure IoT Hub的辅助服务,它只是针对不同的场景对Azure IoT Hub的功能进行了增强,主要体现在如下几个方面:
- 使用
DPS服务创建设备自动登记,注册,初始化的物联网解决方案。 - 使用
DPS充当一个负载均衡,使得设备可以自动的连接到多个不同的Azure IoT Hub上,并且可以自动切换和数据迁移。 - 使用
DPS集成的traffic Manager的功能降低设备和Azure IoT Hub之间的连接延迟,DPS根据规则可以自动使得设备连接离设备位置最近的IoT 上。
针对以上场景,我们可以借用官方的一个图来说明:

关于上图的步骤说明:
- 设备制造上通过Azure Portal(或者其他工具)向
DPS服务登记列表中添加设备的注册信息(包括一些元数据) - 设备加电后,通过SDK连接
DPS的公开连接终点,并向DPS服务传递认证信息。 DPS服务验证设备标识。- 设备标识验证通过后,
DPS服务根据预定的规则向Azure IoT Hub注册该设备,同时向Azure IoT Hub同步预设的设备初始状态信息(通过预期的device twin) - 设备注册和信息同步完成之后,
DPS服务从IoT Hub接收设备的id等基本信息。 DPS返回连接信息到设备端口,有了这些信息之后,设备可以通过该信息直接连接Azure IoT Hub- 设备连接到
Azure IoT Hub - 设备通过由
DPS同步到Azure IoT Hub的状态信息,初始化自己(by 预期的device twin)
根据DPS服务在整个物联网解决方案中的定位,设备初始化实际上是包含各自独立的两个步骤:
- 设备制造阶段:主要是指设备在产线被生产以及置入基本的信息阶段,例如使用HSM 以及TPM保存
DPS的基本信息等等。 - 通过云进行设置的步骤:即设备从工厂出厂后第一次加电,进行初始化的过程。
这个两个过程也即是我们整个物联网解决方案中最为重要的一环。
DPS主要的特性:
- 安全认证方式:用户可以通过X.509或者TPM进行标识认证
- 登记列表: 主持单个设备登记和分组登记,无论是单个设备或者分组,
DPS都包含详细和完整的设备相关的记录和数据。 - 支持多种IoT Hub分配策略,例如支持通过
Traffic Manager自动分配离设备最近的Hub进行注册。 - 提供监控和诊断日志
- 支持多个
Azure IoT Hub - 支持跨区
目前设备可以通过如下三种方式来得到DPS的认证:
Symmetric Key认证X.509证书认证TPM认证。
Tips
DPS有一个非常重要的特性,那就是所有的DPS服务都是公用同一个endpoint的,所有的DPS服务都有一个Global device endpoint和service endpoint, 所有的客户端都可以通过Global Service endpoint进行连接,而无需担心,删除了某个dps之后,重建会影响已经生成并预置的设备, 例如中国区的global device endpoint是:global.azure-devices-provisioning.cn
每一个DPS服务都需要连接到至少一个Azure IoT Hub上,DPS支持多个Azure IoT Hub, 用户可以通过分配规则来让设备注册到不同的Hub上。
Azure IoT Hub的分配规则:
Evenly Weighted Distributtion: 这是默认设置,如果DPS连接了多个Azure IoT Hu, 设备会平等的分配到几个hub上。Lowest Latency: 使用背后的traffic manager来根据延迟分配IoT Hub- 静态分配:相当于设备会被静态的绑定到某一个IoT hub上。
- 自定义分配: 关于这种方式,我们之后会使用一个例子来说明。
设备登记
设备登记是指存储在DPS服务的设备将来向IoT Hub注册基本信息,主要包括这些信息:
- 设备认证的机制
- 可选的初始化配置数据。
- 期望注册的IoT Hub
- 期望注册的设备id
目前支持两种方式的登记,一种是分组登记,推荐用于大量的设备登记,一种是单个设备登记,推荐用于设备只能通过SAS + TPM认证的方式,或者用于测试目的。
术语
ID Scope
ID Scope是当DPS创建的时候赋予给DPS的唯一标识,主要用于今后的各种操作用于指代DPS服务。
Registration
注册是设备通过DPS向IoT Hub完成初始化的过程。
Registration ID Device Id
按字面意思理解就可以了。