次の方法で共有


Azure Device Update for IoT Hub 更新マニュアル

この記事では、更新プログラムのデプロイ時に Azure Device Update for IoT Hub がデバイスに送信する更新マニフェスト データについて説明します。 更新マニフェストは、インストールする更新プログラムに関するメタデータを含むシリアル化された JSON 文字列オブジェクトです。

Device Update では、IoT プラグ アンド プレイを使用して更新マニフェストを送信し、Device Update エージェントがその信頼性を検証できるように暗号で署名します。 コンテンツを安全にインストールするために更新マニフェストがどのように使用されるかについては、「Device Update のセキュリティ」を参照してください。

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

更新マニフェストは、Device Update インポート マニフェストとは異なります。

  • インポート マニフェストは、デバイス更新にインポートする更新プログラムを記述する JSON ファイルです。 Device Update の更新プログラムを作成するユーザーはだれでも、対応するインポート マニフェスト ファイルを作成します。
  • 更新マニフェストは、更新中に Device Update エージェントに情報を伝達する JSON 文字列オブジェクトです。 Device Update サービスは、インポート マニフェストで定義されているのと同じプロパティの一部を含めることで、更新マニフェストを自動的に生成します。

各マニフェストの種類には、独自のスキーマとスキーマ バージョンがあります。 インポート マニフェスト スキーマの詳細については、「Device Update のインポート スキーマと API 情報」を参照してください。

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

更新マニフェスト 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 は detached 形式 (ミニ更新マニフェストとも呼ばれます) でデバイスに送信。 ミニ マニフェストには、デバイス更新エージェントが完全な更新マニフェストをダウンロードしてその信頼性を確認するために使用できる更新マニフェストに関するメタデータが含まれています。

次の例は、ミニ更新マニフェストを示しています:

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