如何重新预配设备

在 IoT 解决方案的生命周期中,设备在 IoT 中心之间频繁移动。 本主题旨在帮助解决方案操作员配置重新预配策略。

有关更详细的重新预配方案,请参阅 IoT 中心设备重新预配概念

设置重新预配策略

以下步骤为单独注册或注册组配置重新预配策略:

  1. 登录到 Azure 门户,并导航到设备预配服务实例。

  2. 选择“管理注册”,然后选择“注册组”或“单独注册”选项卡。

  3. 选择要为其配置重新预配的注册组或单独注册的名称。

  4. 使用“重新预配策略”下的下拉菜单选择以下重新预配策略之一:

    • 永不重新预配设备。

    • 重新预配设备并重置为初始状态:当与注册项关联的设备提交新的预配请求时,此策略将执行操作。 根据注册项配置,可将设备重新分配给其他 IoT 中心。 如果设备正在更改 IoT 中心,则将删除初始 IoT 中心内的设备注册。 向新的 IoT 中心提供预配设备时预配服务实例接收到的初始配置数据。 迁移期间,设备的状态将报告为“正在分配” 。

    • 重新预配设备并迁移当前状态:当与注册项关联的设备提交新的预配请求时,此策略将执行操作。 根据注册项配置,可将设备重新分配给其他 IoT 中心。 如果设备正在更改 IoT 中心,则将删除初始 IoT 中心内的设备注册。 来自该初始 IoT 中心的所有设备状态信息都将迁移到新的 IoT 中心。 迁移期间,设备的状态将报告为“正在分配”

  5. 选择“保存”,开始根据所做更改进行设备的重新预配。

配置注册分配策略

分配策略决定了在重新预配与注册关联的设备之后如何将其分配到 IoT 中心。 如需详细了解分配策略,请参阅如何使用分配策略

下面的步骤可配置设备注册项的分配策略:

  1. 登录到 Azure 门户,并导航到设备预配服务实例。

  2. 选择“管理注册”,然后选择“注册组”或“单独注册”选项卡。

  3. 选择要为其配置重新预配的注册组或单独注册的名称。

  4. 在“注册详细信息”页上,选择“IoT 中心”选项卡。

  5. 选择以下分配策略之一:

    • 静态:此策略规定对于要预配的设备,必须在注册项中列出所需的 IoT 中心。 使用此策略,你可以指定要向其分配设备的单个 IoT 中心。

    • 均匀加权分发:此策略根据在每个 IoT 中心配置的分配权重跨 IoT 中心分发设备。 分配权重较高的 IoT 中心更有可能被分配。 如果只将设备预配到一个 IoT 中心,推荐使用此设置。 此设置为默认设置。

    • 最低延迟:此策略将设备分配到 IoT 中心,使设备与 IoT 中心之间的通信延迟降至最低。 此选项允许设备根据位置与最近的 IoT 中心进行通信。

    • 自定义(使用 Azure Functions):此策略使用托管在 Azure Functions 中的自定义 Webhook 将设备分配到一个或多个 IoT 中心。 自定义分配策略让你能够更好地控制将设备分配到 IoT 中心的方式。 若要了解详细信息,请参阅了解自定义分配策略

  6. 在“目标 IoT 中心”下,选择要包含在分配策略中的已链接 IoT 中心。 (可选)使用“添加 IoT 中心的链接”按钮添加新的已链接 IoT 中心。

    • 而通过“静态配置”分配策略,可选择要向其分配设备的 IoT 中心 。

    • 使用“均匀加权分发”分配策略,设备将根据其配置的分配权重在不同的 IoT 中心之间进行哈希处理。

    • 使用“最低延迟”分配策略,延迟评估时将纳入你所选的 IoT 中心,从而确定用于设备分配的最近 IoT 中心。

    • 使用“自定义”分配策略时,请选择要评估的 IoT 中心,以便由自定义分配 Webhook 进行分配。

  7. 选择“保存”。

发送来自设备的预配请求

为根据前述部分中所作的配置更改重新预配设备,这些设备必须请求重新预配。

设备提交预配请求的频率由具体方案而定。 在设计解决方案和定义重新预配逻辑时,需要考虑几个事项。 例如:

  • 希望设备重启的频率
  • DPS 配额和限制
  • 你的机群的预期部署时间(分阶段推出与一次性全部部署)
  • 按照 Azure 体系结构中心的重试常规指导中的说明重试针对客户端代码实现的功能

提示

建议不要在每一次重新启动设备时都进行预配,因为这可能会达到服务限制,尤其是在一次性重新预配数千或数百万台设备的时候。 应改为尝试使用设备注册状态查询 API,并尝试利用该信息连接到 IoT 中心。 如果这样操作失败,则请尝试重新预配,因为 IoT 中心信息可能已更改。 请记住,查询获取注册状态将会计为新设备注册,因此,应考虑设备注册限制。 还要考虑实现相应的重试逻辑,例如,通过随机化进行的指数退避,如重试常规指导中所述。 在某些情况下,根据设备功能不同,或许可以在首次发生了使用 DPS 进行的预配后,直接在设备上保存 IoT 中心信息,以便直接连接到 IoT 中心。 如果你选择这样操作,请确保实现退避机制,以防收到中心发生的特定错误,例如,请考虑以下情形:

  • 如果结果代码为 429(请求过多)或 5xx 范围内的错误,请重试中心操作。 请勿针对其他任何错误重试操作。
  • 对于 429 错误,仅在 Retry-After 标头中指示的时间后重试。
  • 对于 5xx 错误,应采用指数退避,第一次重试至少应比该响应晚 5 秒。
  • 对于除了 429 和 5xx 之外的其他错误,则通过 DPS 重新注册
  • 在理想情况下,你还应该支持按需手动触发预配的方法

我们还建议在计划活动(例如,将更新推送到你的机群)时考虑服务限制。 例如,一次性全部更新群队可能会导致所有设备通过 DPS 重新注册(这样可能很容易超过注册配额限制)- 对于这些情况,请考虑分阶段计划设备更新,而不是同时更新整个群队。

后续步骤