你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

如何重新预配设备

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

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

设置重新预配策略

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

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

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

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

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

    • 永不重新预配设备。

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

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

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

配置注册分配策略

分配策略确定在重新预配后,如何将与注册相关的设备分配或指派到 IoT 中心。 若要详细了解分配策略,请参阅 如何使用分配策略跨 IoT 中心预配设备

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

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

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

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

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

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

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

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

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

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

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

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

    • 使用 均匀加权分发 分配策略时,设备会根据所选的分配权重在 IoT 中心进行哈希处理。

    • 使用 最低延迟 分配策略时,所选的 IoT 中心包含在延迟评估中,以确定用于设备分配的最接近的 IoT 中心。

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

  7. 选择“保存”。

发送来自设备的预配请求

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

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

  • 希望设备重启的频率
  • DPS 配额和限制
  • 车队的预期部署时间(分阶段推出与一次性推出)
  • 在客户端代码上实现的重试功能,如 Azure 体系结构中心的 暂时性故障处理 指南中所述

提示

建议不要在每次重新启动设备时进行配置,因为此操作可能会触发服务的流量限制,尤其是在同时重新配置数千或数百万台设备时。 应改为尝试使用设备注册状态查询 API,并尝试利用该信息连接到 IoT 中心。 如果这样操作失败,则请尝试重新预配,因为 IoT 中心信息可能已更改。 请记住,查询注册状态会算作新的设备注册,因此应考虑 设备注册限制。 另请考虑实现适当的重试逻辑,例如使用随机化进行指数退避,如 Azure 体系结构中心的 暂时性故障处理 指南中所述。 在有些情况下,根据设备功能不同,或许可以在首次发生了使用 DPS 进行的预配后,直接在设备上保存 IoT 中心信息,以便直接连接到 IoT 中心。 如果选择直接在设备上保存,请确保在 发生 IoT 中心的特定错误时实现回退机制。 例如,请考虑以下应用场景:

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

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

后续步骤