Поделиться через


Манифест обновления в службе "Обновление устройств для Центра Интернета вещей"

Обновление устройства для Центра Интернета вещей использует IoT Plug and Play для отправки данных на устройства во время развертывания. Среди прочего отправляется манифест обновления в формате сериализованного объекта JSON, в котором содержатся метаданные устанавливаемого обновления. Он снабжен криптографической подписью, которая позволяет агенту обновления устройства проверить его подлинность. Дополнительные сведения о том, как используется манифест обновления для безопасной установки содержимого, см. в разделе Безопасность при обновлении устройств.

Сравнение манифестов импорта и обновления

Важно понимать различия между концепциями манифеста импорта и манифеста обновления в службе "Обновление устройств для Центра Интернета вещей":

  • Манифест импорта создается тем, кто создает соответствующее обновление. Здесь описывается содержимое обновления, которое будет импортировано в службу "Обновление устройств для Центра Интернета вещей".
  • Манифест обновления автоматически создается службой "Обновление устройств для Центра Интернета вещей" с использованием некоторых свойств, определенных в манифесте импорта. Он используется для передачи важной информации агенту обновления устройства в процессе обновления.

Каждый тип манифеста имеет собственную схему и версию схемы.

Схема манифеста обновления

Важно!

Схема JSON для манифеста обновления версии 4 размещается на сайте SchemaStore.org.

Пример манифеста обновления

{
  "manifestVersion": "4",
  "updateId": {
    "provider": "Contoso",
    "name": "Toaster",
    "version": "1.0"
  },
  "compatibility": [
    {
      "manufacturer": "Contoso",
      "model": "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"
}

Сравнение манифеста полного и мини-манифеста

Если манифест обновления превышает определенный размер, который не позволяет эффективно передавать его по сети, служба "Обновление устройств для Центра Интернета вещей" отправит его устройству отдельно в специальном формате мини-манифеста обновления. С технической точки зрения мини-манифест представляет собой метаданные для манифеста обновления и содержит сведения, необходимые агенту обновления устройства для скачивания полного манифеста обновления и проверки его подлинности.

Пример мини-манифеста обновления:

{
  "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="
      }
    }
  }
}