你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
本文介绍 Azure Device Update for IoT 中心在更新部署期间发送到设备的更新清单数据。 该更新清单是一个序列化的 JSON 字符串对象,其中包含有关要安装的更新的元数据。
Device Update 使用 IoT 即插即用来发送更新清单,并对其进行加密签名,以便 Device Update 代理可以验证其真实性。 若要详细了解如何使用更新清单来安全地安装内容,请参阅 Device Update 安全性。
导入清单与更新清单
更新清单不同于 Device Update 导入清单。
- 导入清单是一个 JSON 文件,描述要导入到 Device Update 的更新。 为 Device Update 创建更新的任何人都会创建相应的导入清单文件。
- 更新清单是一个 JSON 字符串对象,它会在更新过程中将信息传达给 Device Update 代理。 Device Update 服务通过包含导入清单中定义的一些相同的属性来自动生成更新清单。
每个清单类型都有其自己的架构和架构版本。 有关导入清单架构的详细信息,请参阅 Device Update 导入清单架构。
更新清单架构
更新清单 JSON 架构版本 4 托管在 SchemaStore.org。
示例更新清单
{
"manifestVersion": "4",
"updateId": {
"provider": "Contoso",
"name": "Toaster",
"version": "1.0"
},
"compatibility": [
{
"manufacturer": "Contoso",
"model": "Toaster"
}
],
"instructions": {
"steps": [
{
"handler": "microsoft/swupdate:2",
"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"
}
更新清单的完整版与微型版
如果更新清单太大,无法高效通信,则 Device Update 会以分离格式将其发送到设备,也称为迷你更新清单。 迷你清单包含有关 Device Update 代理可用于下载完整更新清单并验证其真实性的更新清单的元数据。
以下示例演示了一个迷你更新清单:
{
"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="
}
}
}
}