由于存在许多可能的故障点(例如证明失败、注册失败等),IoT 设备的预配问题有时很难排查。若要详细了解如何将 Azure Monitor 与 DPS 配合使用,请参阅监视 Azure IoT 中心设备预配服务。
常见错误代码
使用下表来了解和解决常见错误。
| 错误代码 | 说明 | HTTP 状态代码 |
|---|---|---|
| 400 | 请求正文无效;例如,无法对其进行分析,或者无法验证对象。 | 400 格式错误 |
| 401 | 无法验证授权令牌;例如,它已过期或不适用于请求的 URI。 此错误代码也会在 TPM 证明流中返回给设备。 | 401 未授权 |
| 404 | 设备预配服务实例或资源(例如注册)不存在。 | 404 未找到 |
| 405 | 客户端服务知道请求方法,但目标服务不认识此方法;例如,REST 操作缺少注册或注册 ID 参数 | 不允许 405 方法 |
| 409 | 由于与目标设备预配服务实例的当前状态发生冲突,无法完成请求。 例如,客户创建了一个数据点,并尝试再次重新创建相同的数据点。 | 409 冲突 |
| 412 | 根据RFC7232,请求中的 ETag 与现有资源的 ETag 不匹配。 | 412 先决条件失败 |
| 415 | 服务器拒绝接受该请求,因为有效负载格式采用了不受支持的格式。 有关支持的格式,请参阅 Azure IoT 中心设备预配服务 REST API | 415 不支持的媒体类型 |
| 429 | 服务限制了操作。 有关特定服务限制,请参阅 Azure IoT 中心设备预配服务限制。 | 429 请求过多 |
| 500 | 发生内部错误。 | 500 内部服务器错误 |
建议的操作
如果 IoT Edge 设备无法启动,并显示错误消息
failed to provision with IoT Hub, and no valid device backup was found dps client error,请参阅 IoT Edge (1.1) 文档中的 DPS 客户端错误。对于“401 未授权”、“403 禁止访问”或“404 未找到”错误,可通过调用 DPS 注册 API 来执行完全重新注册。
对于 429 错误,请遵循 IoT 中心的重试模式(具有指数退避,随机抖动)。 可以遵循 SDK 提供的 retry-after 标头。
要了解相关的最佳做法(例如重试操作),请参阅大规模 IoT 设备部署的最佳做法。
后续步骤
若要详细了解如何将 Azure Monitor 与 DPS 配合使用,请参阅 监视 Azure IoT 中心设备预配服务。
若要了解 Azure Monitor 中为 DPS 发出的指标、日志和架构,请参阅 Azure IoT 中心设备预配服务监视数据参考。