你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
在 IoT 解决方案的生命周期中,设备在 IoT 中心之间频繁移动。 本文旨在协助解决方案操作员配置重新预配策略。
有关更详细的重新预配方案,请参阅 IoT 中心设备重新预配概念。
设置重新预配策略
以下步骤为单独注册或注册组配置重新预配策略:
登录到 Azure 门户,并导航到设备预配服务实例。
选择“管理注册”,然后选择“注册组”或“单独注册”选项卡。
选择要为其配置重新预配的注册组或单独注册的名称。
使用“重新预配策略”下的下拉菜单选择以下重新预配策略之一:
永不重新预配设备。
重新预配设备并重置为初始状态:当与注册项关联的设备提交新的预配请求时,此策略将执行操作。 根据注册项配置,设备可能会被重新分配到另一个物联网中心。 如果设备正在更改 IoT 中心,则会删除初始 IoT 中心的设备注册。 向新的 IoT 中心提供预配设备时预配服务实例接收到的初始配置数据。 在迁移期间,设备的状态将报告为 “分配”。
重新预配设备并迁移当前状态:当与注册项关联的设备提交新的预配请求时,此策略将执行操作。 根据注册录入配置,设备可能会重新分配到另一个 IoT 中心。 如果设备正在更改 IoT 中心,则会删除初始 IoT 中心的设备注册。 来自该初始 IoT 中心的所有设备状态信息都会迁移到新的 IoT 中心。 在迁移期间,设备的状态将报告为 “分配”
选择“保存”,开始根据所做更改进行设备的重新预配。
配置注册分配策略
分配策略确定在重新预配后,如何将与注册相关的设备分配或指派到 IoT 中心。 若要详细了解分配策略,请参阅 如何使用分配策略跨 IoT 中心预配设备。
下面的步骤可配置设备注册项的分配策略:
登录到 Azure 门户,并导航到设备预配服务实例。
选择“管理注册”,然后选择“注册组”或“单独注册”选项卡。
选择要为其配置重新预配的注册组或单独注册的名称。
在“注册详细信息”页上,选择“IoT 中心”选项卡。
选择以下分配策略之一:
静态:此策略规定对于要预配的设备,必须在注册项中列出所需的 IoT 中心。 使用此策略,你可以指定要向其分配设备的单个 IoT 中心。
均匀加权分发:此策略根据在每个 IoT 中心配置的分配权重跨 IoT 中心分发设备。 分配权重较高的 IoT 中心更有可能被分配。 如果只将设备预配到一个 IoT 中心,推荐使用此设置。 此设置为默认设置。
最低延迟:此策略将设备分配到 IoT 中心,这会导致设备和 IoT 中心之间的延迟最低的通信。 此选项允许设备根据位置与最近的 IoT 中心进行通信。
自定义(使用 Azure Functions):此策略使用托管在 Azure Functions 中的自定义 Webhook 将设备分配到一个或多个 IoT 中心。 自定义分配策略让你能够更好地控制将设备分配到 IoT 中心的方式。 若要了解详细信息,请参阅 使用 Azure IoT 中心设备预配服务了解自定义分配策略。
在“目标 IoT 中心”下,选择要包含在分配策略中的已链接 IoT 中心。 (可选)使用“添加 IoT 中心的链接”按钮添加新的已链接 IoT 中心。
而通过“静态配置”分配策略,可选择要向其分配设备的 IoT 中心 。
使用 均匀加权分发 分配策略时,设备会根据所选的分配权重在 IoT 中心进行哈希处理。
使用 最低延迟 分配策略时,所选的 IoT 中心包含在延迟评估中,以确定用于设备分配的最接近的 IoT 中心。
使用“自定义”分配策略时,请选择要评估的 IoT 中心,以便由自定义分配 Webhook 进行分配。
选择“保存”。
发送来自设备的预配请求
为根据前述部分中所作的配置更改重新预配设备,这些设备必须请求重新预配。
设备提交预配请求的频率由具体方案而定。 设计解决方案并定义重新预配逻辑时,需要考虑一些事项。 例如:
提示
建议不要在每次重新启动设备时进行配置,因为此操作可能会触发服务的流量限制,尤其是在同时重新配置数千或数百万台设备时。 应改为尝试使用设备注册状态查询 API,并尝试利用该信息连接到 IoT 中心。 如果这样操作失败,则请尝试重新预配,因为 IoT 中心信息可能已更改。 请记住,查询注册状态会算作新的设备注册,因此应考虑 设备注册限制。 另请考虑实现适当的重试逻辑,例如使用随机化进行指数退避,如 Azure 体系结构中心的 暂时性故障处理 指南中所述。 在有些情况下,根据设备功能不同,或许可以在首次发生了使用 DPS 进行的预配后,直接在设备上保存 IoT 中心信息,以便直接连接到 IoT 中心。 如果选择直接在设备上保存,请确保在 发生 IoT 中心的特定错误时实现回退机制。 例如,请考虑以下应用场景:
- 如果结果代码为 429(请求过多)或为 5xx 范围内的错误,请重试 IoT 中心操作。 不要重试任何其他错误。
- 对于 429 错误,仅在 Retry-After 标头中指示的时间后重试。
- 对于 5xx 错误,应采用指数退避,第一次重试至少应比该响应晚 5 秒。
- 对于除了 429 和 5xx 之外的其他错误,则通过 DPS 重新注册
- 理想情况下,还应支持 直接方法,以按需手动触发配置。
我们还建议在计划活动(例如,将更新推送到你的机群)时考虑服务限制。 例如,一次性更新机队可能会导致所有设备通过 DPS 重新注册(这很容易超过注册配额限制)。对于此类方案,请考虑分阶段规划设备更新,而不是同时更新整个机群。
后续步骤
- 若要了解有关重新预配的详细信息,请参阅 IoT 中心设备重新预配概念。
- 若要了解有关取消预配的详细信息,请参阅 如何取消预配以前自动预配的设备。