在部署期间,IoT 中心的设备更新功能使用 IoT 即插即用 将数据发送到设备。 其中一个是 更新清单,它是一个序列化的 JSON 对象字符串,其中包含要安装的更新的元数据。 它还经过加密签名,以允许设备更新代理验证其真实性。 有关如何使用更新清单安全地安装内容的详细信息,请参阅 设备更新安全性。
导入清单与更新清单
请务必了解导入清单与 IoT 中心设备更新中的更新清单概念之间的差异:
- 导入清单 由创建相应更新的人员创建。 它描述了将被导入到 IoT Hub 的设备更新服务中的更新内容。
- 更新清单由 IoT 中心设备更新服务自动生成,使用导入清单中定义的一些属性。 它用于在更新过程中将相关信息传达给设备更新代理。
每种清单文件类型都有其自己的架构和架构版本。
更新清单架构
重要
版本 4 的更新清单 JSON 架构托管在 SchemaStore.org。
示例更新清单
{
"manifestVersion": "4",
"updateId": {
"provider": "Contoso",
"name": "Toaster",
"version": "1.0"
},
"compatibility": [
{
"deviceManufacturer": "Contoso",
"deviceModel": "Toaster"
}
],
"instructions": {
"steps": [
{
"handler": "microsoft/swupdate:1",
"handlerProperties": {
"installedCriteria": "1.0"
},
"files": [
"fileId0"
]
}
]
},
"files": {
"fileId0": {
"filename": "contoso.toaster.1.0.swu",
"sizeInBytes": 718,
"hashes": {
"sha256": "mcB5SexMU4JOOzqmlJqKbue9qMskWY3EI/iVjJxCtAs="
}
}
},
"createdDateTime": "2021-09-28T18:32:01.8404544Z"
}
更新清单的完整版与迷你版
当更新清单超出某个特定大小,影响有效通信时,IoT 中心的设备更新功能将以 分离 格式(也称为 微型更新清单)发送到设备。 微型清单在技术上是更新清单的元数据,包含设备更新代理下载完整更新清单并验证其真实性所需的信息。
微型更新清单示例:
{
"manifestVersion": "4",
"updateId": {
"provider": "Contoso",
"name": "Toaster",
"version": "1.0"
},
"detachedManifestFileId": "fileId1",
"files": {
"fileId1": {
"filename": "contoso.toaster.1.0.updatemanifest.json",
"sizeInBytes": 2048,
"hashes": {
"sha256": "789s9PDfX4uA9wFUubyC30BWkLFbgmpkpmz1fEdqo2U="
}
}
}
}