IoT Hub 用のデバイス更新の更新マニフェスト

Device Update for IoT Hub はIoT Plug and Play を使用して、デプロイ時にデバイスへデータを送信します。 そのうちの 1 つが更新マニフェストです。インストールする更新プログラムのメタデータを含むシリアル化された JSON オブジェクト文字列です。 また、デバイス更新エージェントが信頼性を確認できるように、更新マニフェストは暗号で署名されています。 コンテンツを安全にインストールするために更新マニフェストがどのように使用されるかについては、「デバイス更新のセキュリティ」をご覧ください。

インポート マニフェストと更新マニフェスト

Device Update for IoT Hub におけるインポート マニフェストと更新マニフェストの概念の違いを理解しておくことが重要です。

  • インポート マニフェストは、対応する更新プログラムを作成するユーザーによって作成されます。 そこでは、IoT Hub 用のデバイス更新にインポートされる更新の内容が記述されています。
  • 更新マニフェストは、インポート マニフェストで定義されていたいくつかのプロパティを使用して、IoT Hub 用のデバイス更新サービスにより自動的に生成されます。 それは、更新プロセスの間に関連情報をデバイス更新エージェントに伝えるために使用されます。

各マニフェストの種類には、独自のスキーマとスキーマ バージョンがあります。

インポート マニフェスト スキーマ

重要

更新マニフェスト 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"
}

完全更新マニフェストとミニ更新マニフェスト

更新マニフェストが、効率的に通信するのを妨げる一定のサイズを超えると、Device Update for IoT Hub はデタッチされた形式 (ミニ更新マニフェストとも呼ばれる) でそれをデバイスに送信します。 ミニ マニフェストは、技術的には更新マニフェストのメタデータであり、デバイス更新エージェントが完全な更新マニフェストをダウンロードしてその信頼性を確認するために必要な情報が含まれています。

ミニ更新マニフェストの例:

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