Dela via


Uppdateringsmanifest för Azure Device Update för IoT Hub

I den här artikeln beskrivs de uppdateringsmanifestdata som Azure Device Update för IoT Hub skickar till enheter under uppdateringsdistributionen. Uppdateringsmanifestet är ett serialiserat JSON-strängobjekt som innehåller metadata om uppdateringen som ska installeras.

Enhetsuppdatering använder IoT Plug and Play för att skicka uppdateringsmanifestet och signerar det kryptografiskt så att enhetsuppdateringsagenten kan verifiera dess äkthet. Mer information om hur uppdateringsmanifestet används för att installera innehåll på ett säkert sätt finns i Säkerhet för enhetsuppdatering.

Importera manifest kontra uppdateringsmanifest

Uppdateringsmanifestet skiljer sig från importmanifestet för enhetsuppdatering.

  • Importmanifestet är en JSON-fil som beskriver uppdateringen som ska importeras till Enhetsuppdatering. Den som skapar uppdateringen för Enhetsuppdatering skapar motsvarande importmanifestfil.
  • Uppdateringsmanifestet är ett JSON-strängobjekt som förmedlar information till enhetsuppdateringsagenten under en uppdatering. Enhetsuppdateringstjänsten genererar automatiskt uppdateringsmanifestet genom att inkludera några av de egenskaper som definierats i importmanifestet.

Varje manifesttyp har ett eget schema och en egen schemaversion. Mer information om importmanifestschemat finns i Schemat för importmanifestet för enhetsuppdatering.

Uppdatera manifestschema

JSON-schemaversion 4 för uppdateringsmanifestet finns på SchemaStore.org.

Exempel på uppdateringsmanifest

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

Fullständigt vs mini-uppdateringsmanifest

Om ett uppdateringsmanifest är för stort för att kunna kommuniceras effektivt skickar Enhetsuppdatering det till enheten i frånkopplat format, även kallat ett miniuppdateringsmanifest. Ett minimanifest innehåller metadata om uppdateringsmanifestet som enhetsuppdateringsagenten kan använda för att ladda ned det fullständiga uppdateringsmanifestet och verifiera dess äkthet.

I följande exempel visas ett miniuppdateringsmanifest:

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