次の方法で共有


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

Device Update for IoT Hub では、IoT プラグ アンド プレイ を使用して、デプロイ中にデバイスにデータを送信します。 そのうちの 1 つは、更新マニフェストです。これは、インストールする更新プログラムのメタデータを含むシリアル化された JSON オブジェクト文字列です。 また、Device Update エージェントがその信頼性を検証できるように、暗号化によって署名されます。 更新マニフェストを使用してコンテンツを安全にインストールする方法の詳細については、「デバイス更新プログラムのセキュリティ を参照してください。

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

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

  • インポート マニフェスト は、対応する更新プログラムを作成するユーザーによって作成されます。 Device Update for IoT Hub にインポートされる更新プログラムの内容について説明します。
  • 更新マニフェストは、インポート マニフェストで定義されたプロパティの一部を使用して、Device Update for IoT Hub サービスによって自動的に生成されます。 更新プロセス中に関連する情報を Device Update エージェントに伝達するために使用されます。

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

マニフェスト スキーマを更新する

重要

更新マニフェスト JSON スキーマ バージョン 4 は、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"
}

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

更新マニフェストが一定のサイズを超えて効率的に通信できない場合、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="
      }
    }
  }
}