Frissítések importálása az eszközfrissítésbe a IoT Hub

Ahhoz, hogy az eszközfrissítést IoT Hub eszközfrissítésből telepítse, először importálnia kell a frissítést az Eszközfrissítés szolgáltatásba. Az importált frissítés az Eszközfrissítés szolgáltatásban lesz tárolva, és onnan telepíthető az eszközökre. Ez a cikk áttekintést nyújt néhány fontos fogalomról, amelyeket érdemes megismerni a frissítések importálásával kapcsolatban.

Jegyzékfájl importálása

Az importálási jegyzék egy JSON-fájl, amely fontos információkat határoz meg az importálandó frissítésről. Az importálási folyamat részeként elküldheti az importálási jegyzékfájlt és a hozzá tartozó frissítési fájlt vagy fájlokat (például belső vezérlőprogram-frissítési csomagot). Az importálási jegyzékben definiált metaadatok a frissítés betöltésére szolgálnak. A metaadatok egy része az üzembe helyezéskor is használatos – például annak ellenőrzésére, hogy egy frissítés megfelelően lett-e telepítve.

Például:

{
  "updateId": {
    "provider": "Contoso",
    "name": "Toaster",
    "version": "1.0"
  },
  "isDeployable": false,
  "compatibility": [
    {
      "manufacturer": "Contoso",
      "model": "Toaster"
    }
  ],
  "instructions": {
    "steps": [
      {
        "handler": "microsoft/swupdate:1",
        "files": [
          "firmware.swu"
        ],
        "handlerProperties": {
          "installedCriteria": "1.0"
        }
      }
    ]
  },
  "files": [
    {
      "filename": "firmware.swu",
      "sizeInBytes": 7558,
      "hashes": {
        "sha256": "/CD7Sn6fiknWa3NgcFjGlJ+ccA81s1QAXX4oo5GHiFA="
      }
    }
  ],
  "createdDateTime": "2022-01-19T06:23:52.6996916Z",
  "manifestVersion": "5.0"
}

Az importálási jegyzék számos olyan elemet tartalmaz, amelyek IoT Hub fogalmak fontos eszközfrissítését jelölik. Ezeket az elemeket ebben a szakaszban ismertetjük. A teljes importálási sémával kapcsolatos információkért lásd: Jegyzékfájl JSON-sémájának importálása.

Identitás frissítése

A frissítési identitás vagy az updateId a IoT Hub eszközfrissítésének egyedi azonosítója. Három részből áll:

  • Szolgáltató: a frissítést létrehozó vagy közvetlenül felelős entitás. Ez gyakran a vállalat neve lesz.
  • Név: egy frissítési osztály azonosítója. Gyakran eszközosztály vagy modellnév lesz.
  • Verzió: egy verziószám, amely megkülönbözteti ezt a frissítést más, azonos szolgáltatóval és névvel rendelkezőktől.

Például:

{
  "updateId": {
    "provider": "Contoso",
    "name": "Toaster",
    "version": "1.0"
  }
}

Megjegyzés

Az UpdateId-et csak az eszközfrissítési szolgáltatás használja, és eltérhet az eszközön található tényleges szoftverösszetevők identitásától.

Kompatibilitás

A kompatibilitás határozza meg egy olyan eszköz feltételeit, amely telepítheti a frissítést. Olyan eszköztulajdonságokat tartalmaz, amelyek egy eszközről jelentett tetszőleges kulcsértékpárok. Csak az egyező tulajdonságokkal rendelkező eszközök jogosultak üzembe helyezésre. Egy frissítés több eszközosztálysal is kompatibilis lehet, ha több eszköztulajdonsággal rendelkezik.

Íme egy példa egy frissítésre, amely csak olyan eszközön telepíthető, amely a Contoso-t és a Toastert jelenti az eszköz gyártójaként és modelljeként.

{
  "compatibility": [
    {
      "manufacturer": "Contoso",
      "model": "Toaster"
    }
  ]
}

Utasítások

Az Utasítások rész tartalmazza a frissítés telepítéséhez szükséges információkat vagy lépéseket az eszközügynök számára. A legegyszerűbb frissítés egyetlen beágyazott lépést tartalmaz. Ez a lépés az eszközügynökben regisztrált kezelővel hajtja végre a mellékelt hasznos adatfájlt:

{
  "instructions": {
    "steps": [
      {
        "handler": "microsoft/swupdate:1",
        "files": [
          "contoso.toaster.1.0.swu"
        ]
      }
    ]
  }
}

Tipp

handler az importálási jegyzékfájl 3.0-s vagy újabb verziójával egyenértékű updateType .

Egy frissítés több lépést is tartalmazhat:

{
  "instructions": {
    "steps": [
      {
        "description": "pre-install script",
        "handler": "microsoft/script:1",
        "handlerProperties": {
          "arguments": "--pre-install"
        },
        "files": [
          "configure.sh"
        ]
      },
      {
        "description": "firmware package",
        "handler": "microsoft/swupdate:1",
        "files": [
          "contoso.toaster.1.0.swu"
        ]
      }
    ]
  }
}

A frissítések tartalmazhatnak referencialépéseket , amelyek arra utasítják az eszközügynököt, hogy telepítsen egy másik frissítést a saját importálási jegyzékfájljával, és hozzon létre egy szülő- és gyermekfrissítési kapcsolatot. Egy kenyérpirító frissítése például két gyermekfrissítést tartalmazhat:

{
  "instructions": {
    "steps": [
      {
        "type": "reference",
        "updateId": {
          "provider": "Contoso",
          "name": "Toaster.HeatingElement",
          "version": "1.0"
        }
      },
      {
        "type": "reference",
        "updateId": {
          "provider": "Contoso",
          "name": "Toaster.Sensors",
          "version": "1.0"
        }
      }
    ]
  }
}

Megjegyzés

A frissítés tartalmazhat beágyazott és hivatkozási lépések tetszőleges kombinációját.

Fájlok

A Fájlok rész tartalmazza a frissítési hasznos adatok fájljainak metaadatait, például a nevüket, a méretüket és a kivonatukat. A IoT Hub eszközfrissítése ezt a metaadatot használja az integritás ellenőrzéséhez az importálási folyamat során. Ezeket az információkat a rendszer ezután továbbítja az eszközügynöknek az integritás-ellenőrzés megismétléséhez a telepítés előtt.

Megjegyzés

A csak referencialépéseket tartalmazó frissítések nem tartalmaznak frissítési hasznos adatokat tartalmazó fájlt a szülőfrissítésben.

Importálási jegyzék létrehozása

Bár az importálási jegyzék JSON-t manuálisan is meg lehet írni egy szövegszerkesztővel, az Azure parancssori felülete (CLI) jelentősen leegyszerűsíti a folyamatot. Ha készen áll egy importálási jegyzék létrehozására, használhatja az útmutatót.

Fontos

Az importálási jegyzékfájl JSON-fájlnevének a Azure Portal keresztüli importáláskor kell végződnie.importmanifest.json.

Tipp

A Visual Studio Code használatával engedélyezheti az automatikus kiegészítést és a JSON-sémaérvényesítést egy importálási jegyzék létrehozásakor.

A frissítések importálásának korlátai

A IoT Hub-példányok egyes eszközfrissítéseihez bizonyos korlátokat kell kikényszeríteni. Ha még nem ellenőrizte őket, tekintse meg az Eszközfrissítés korlátai című témakört.

Következő lépések