IoT 中心更新清单的设备更新

在部署期间,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="
      }
    }
  }
}