IoT 中心设备更新故障排除指南

本文档列出了设备更新用户报告的一些常见问题和问题。 随着设备更新通过公共预览版进行,此故障排除指南将定期更新新的问题和解决方案。 如果遇到此故障排除指南中未出现的问题,请参阅 “联系Microsoft支持 ”部分来记录你的情况。

导入更新

问:将设备更新实例连接到 IoT 中心实例时遇到问题。

请确保根据 设备更新资源 文档正确配置 IoT 中心消息路由。

可能无法正确配置访问权限。 请确保已根据 设备更新访问控制 文档正确配置了访问权限。

问:将内容导入设备更新服务时遇到 500 类型错误。

500 范围内的错误代码可能表示设备更新服务出现问题。 请等待 5 分钟,然后重试。 如果仍然存在相同的错误,请按照联系 Microsoft 支持部分中的说明,向 Microsoft 提交支持请求。

问:我想保留相同的兼容性属性(以更新为相同的设备类型为目标),但更改导入清单中的提供程序或名称。 但是当我这样做时,我收到错误“失败:由于超出限制而导入更新时出错”。

同一组完全相同的兼容性属性不能与多个更新提供程序和名称组合一起使用。 这允许设备更新服务确定哪些更新应可用于部署到给定设备。 如果需要在单个设备上更新多个组件或分区, 代理更新 功能可提供该功能。

问:导入内容时遇到错误消息,想要了解详细信息。

有关导入相关错误消息的更多详细信息,请参阅 设备更新错误代码 文档。

设备故障

问:如何确保我的设备已连接到 IoT 中心的设备更新?

可以通过检查设备是否显示在 Azure 门户符合性视图中的“未组合”设备部分下,来验证设备是否已连接到设备更新。

问:我的一个或多个设备无法更新。

设备更新失败存在许多可能的根本原因。 请确认设备是否:1)连接到您的 IoT 中心实例,2)连接到您的设备更新实例,3)Delivery Optimization(DO)服务正在运行。 如果这三者都适用于你的设备,请按照“联系 Microsoft 支持”部分中的说明提交支持请求给 Microsoft。

部署更新

问:我已将更新部署到设备上,但合规状态显示设备未使用最新更新。 我该怎么办?

设备符合性状态可能需要长达 5 分钟才能刷新。 请稍候,然后再次检查。

问:我的设备的部署状态显示不兼容,我该怎么办?

将设备连接到 IoT 中心后,目标设备的制造商和型号属性可能已更改,导致设备现在被视为与当前部署的更新内容不兼容。

检查 ADU 核心接口 以查看设备向设备更新服务报告的制造商和型号,并确保它与部署的更新内容的 导入清单 中指定的制造商和型号匹配。 可以使用 设备更新配置文件更改给定设备的这些属性。

问:我看到我的部署处于“活动”阶段,但在更新过程中没有任何设备处于“正在进行”状态。 我该怎么办?

确保您的部署开始日期未设定在未来。 创建新部署时,部署开始日期默认设置为第二天,除非您显式更改它,作为一种安全措施。 你可等待部署开始日期到来,也可取消正在进行的部署,并创建具有所需开始日期的新部署。

问:我正在尝试对设备进行分组,但在创建组时,我看不到下拉列表中的标记。

请确保根据设备更新资源文档正确配置您的 IoT 中心中的消息路由。 在配置路由后,必须再次标记您的设备。

另一个根本原因可能是你在将设备连接到 IoT Hub 的设备更新之前应用了标签。 确保设备已连接到设备更新。 您可以通过检查设备在符合性视图中是否显示在“未组合”设备下,来验证您的设备是否已连接到 IoT 中心的设备更新程序。 暂时添加不同值的标记,然后在设备连接后再次添加预期标记。

如果使用设备预配服务(DPS),请确保在预配设备后标记设备,而不是在设备创建过程中标记设备。 如果在设备创建步骤中已标记设备,则必须在预配设备后临时使用其他值标记设备,然后再次添加预期标记。

问:我的部署已成功完成,但某些设备无法更新。

这可能是由失败设备上的客户端错误引起的。 请参阅本故障排除指南中的“设备故障”部分。

问:尝试启动部署时,在 UX 中遇到错误。

这可能是由服务/UX bug 或 API 权限问题引起的。 请按照 “联系Microsoft支持 ”部分中的说明,通过Microsoft提交支持请求。

问:我已启动部署,但它未达到结束状态。

这可能是由服务性能问题、服务 bug 或客户端 bug 引起的。 请在 10 分钟后重试部署。 如果遇到相同的问题,请拉取设备日志,并参阅本故障排除指南中的“设备故障”部分。 如果仍然存在相同的问题,请按照 “联系Microsoft支持 ”部分中的说明,向Microsoft提交支持请求。

问:我从设备级别代理迁移到将代理添加为设备上的模块标识,并且我的更新显示为“正在进行”,即使它已应用于设备。

这可能是由于您未删除通过设备孪生进行通信的较旧代理所导致的。 当您将设备更新代理预配为模块时(参见 了解如何),设备与设备更新服务之间的所有通信都通过模块孪生对象进行,因此请记得在创建 时标记设备的模块孪生对象,并且所有 通信都必须通过模块孪生对象进行。

将更新下载到设备上

问:当设备在断开连接一段时间后重新连接时,如何恢复下载?

在 24 小时内还原连接时,下载将自行恢复。 24 小时后,用户需要重新初始化下载。

使用Microsoft连接缓存 (MCC)

问:尝试在 IoT Edge 设备上部署 MCC 模块时遇到问题。

请参阅 IoT Edge 文档 ,了解如何将 Edge 模块部署到 IoT Edge 设备。 可以通过导航到 http://localhost:5100/Summary.,检查 MCC 模块是否在 IoT Edge 设备上成功运行

问:我的一个 IoT 设备正在尝试通过 MCC 下载更新,但失败。

有几个问题可能导致 IoT 设备在连接到 MCC 时失败。 若要诊断问题,请从失败的设备收集 DO 客户端和 Nginx 日志(请参阅 “联系Microsoft支持 ”部分,获取有关收集客户端日志的说明)。

设备可能无法从Internet拉取内容并传递到其MCC模块,因为它使用的URL不被允许。 若要确定这一点,需要在 Azure 门户中检查 IoT Edge 环境变量。

联系Microsoft支持部门

如果遇到无法使用上述常见问题解答解决的问题,可以通过 Azure 门户界面向Microsoft支持部门提交支持请求。 根据你指示问题所属的类别,可能会要求你收集和共享其他数据,以帮助Microsoft支持人员调查你的问题。

有关如何收集每种数据类型的说明,请参阅下文。 可以使用 getDevices 检查 API 的有效负载响应中的其他信息。

此外,以下信息可用于缩小问题的根本原因:

  • 尝试更新的设备类型(Azure Percept、IoT Edge 网关和其他)
  • 你正在使用的设备更新客户端类型(基于映像、基于包、模拟器)
  • 设备正在运行的 OS
  • 有关设备体系结构的详细信息
  • 是否已成功使用设备更新功能来更新设备

如果有上述任何可用信息,请将其包含在问题说明中。

收集客户端日志

  • 在 Raspberry Pi 设备上,此处提供了两组日志:

    /adu/logs
    
    /var/cache/do-client-lite/log
    
  • 对于打包的客户端,日志可在此处找到:

    /var/log/adu
    
    /var/cache/do-client-lite/log
    
  • 对于模拟器,可以在以下位置找到日志:

    /tmp/aduc-logs
    

错误代码

报告与导入更新、设备故障或部署更新相关的问题时,可能会要求你提供错误代码。

可以通过查看 ADUCoreInterface 接口来获取错误代码。 有关如何分析错误代码以进行自我诊断和故障排除的信息,请参阅 设备更新错误代码 文档。

跟踪 ID

报告与导入或部署更新相关的问题时,系统可能会要求你提供跟踪 ID。

可以在 API 响应中找到给定用户作的跟踪 ID,也可以在 Azure 门户用户界面的“导入历史记录”部分中找到。

目前,部署操作的跟踪 ID 仅可通过 API 响应获取。

部署识别号

报告与部署更新相关的问题时,可能会要求你提供部署 ID。

在调用 API 以启动部署时,用户会创建部署 ID。

目前,从 Azure 门户用户界面启动的部署的部署 ID 是自动生成的,不会显示给用户。

IoT 中心实例名称

报告与设备故障或部署更新相关的问题时,可能会要求你提供 IoT 中心实例的名称。

首次预配时,用户会选择 IoT 中心名称。

设备更新帐户名称

报告与导入更新、设备故障或部署更新相关的问题时,系统可能会要求你提供设备更新帐户的名称。

首次注册服务时,用户会选择设备更新帐户名称。 可以在 设备更新资源 文档中找到详细信息。

设备更新实例名称

报告与导入更新、设备故障或部署更新相关的问题时,系统可能会要求你提供设备更新实例的名称。

首次预配时,用户会选择设备更新实例名称。 可以在 设备更新资源 文档中找到详细信息。

设备标识符

报告与设备故障或部署更新相关的问题时,可能会要求你提供设备 ID。

首次预配设备时,客户定义设备 ID。 也可以从设备孪生中检索它。

更新 ID

报告与部署更新相关的问题时,可能会要求你提供更新 ID。

启动部署时,客户定义更新 ID。

Nginx 日志

报告与Microsoft连接缓存相关的问题时,系统可能会要求你提供 Nginx 日志。

ADU-conf.txt

报告与部署更新相关的问题时,可能会要求你提供设备更新配置文件(“adu-conf.txt”)。

配置文件是可选的,由用户按照 设备更新配置 文档中的说明创建。

导入清单

报告与导入或部署更新相关的问题时,可能会要求你提供导入清单文件。

导入清单是客户在将更新内容导入设备更新服务时创建的文件。

下一步:详细了解设备更新错误代码