Frissítések importálása az eszközfrissítésbe a IoT Hub
Ahhoz, hogy a IoT Hub eszközfrissítéséből telepíthessen frissítéseket az eszközökre, először importálnia kell a frissítést az Eszközfrissítés szolgáltatásba. Ez a cikk áttekintést nyújt néhány fontos fogalomról, amelyeket érdemes megismerni a frissítések importálása során.
Jegyzékfájl importálása
Az importálási jegyzékfájl 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 meghatározott metaadatok a frissítés betöltésére szolgálnak. Néhány metaadat 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": [
{
"deviceManufacturer": "Contoso",
"deviceModel": "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": "4.0"
}
Az importálási jegyzék számos olyan elemet tartalmaz, amelyek fontos eszközfrissítést jelentenek IoT Hub fogalmakhoz. Ezeket az elemeket ebben a szakaszban ismertetjük. További információ a teljes importálási sémáról: Jegyzékfájl JSON-sémájának importálása.
Identitás frissítése
A frissítési identitás vagy 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 egy vállalat neve lesz.
- Név: a frissítések egy osztályának azonosítója. Ez gyakran egy eszközosztály vagy modell neve lesz.
- Verzió: egy verziószám, amely megkülönbözteti ezt a frissítést azoktól, akik ugyanazzal a szolgáltatóval és névvel rendelkeznek.
Például:
{
"updateId": {
"provider": "Contoso",
"name": "Toaster",
"version": "1.0"
}
}
Megjegyzés
Az UpdateId azonosítót 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 képes telepíteni a frissítést. Olyan eszköztulajdonságokat tartalmaz, amelyek egy eszközről jelentett tetszőleges kulcsértékpárokból állnak. Csak az egyező tulajdonságokkal rendelkező eszközök jogosultak az üzembe helyezésre. Egy frissítés több eszköztulajdonság-készlettel kompatibilis lehet több eszközosztálysal.
Íme egy példa egy frissítésre, amely csak olyan eszközön helyezhető üzembe, amely a Contoso és a Toaster eszközgyártóként és -modellként jelent be.
{
"compatibility": [
{
"deviceManufacturer": "Contoso",
"deviceModel": "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 végrehajtja a belefoglalt hasznos adatfájlt egy, az eszközügynökben regisztrált kezelő használatával:
{
"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 olyan referencialépéseket tartalmazhatnak, 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ések beágyazott és hivatkozási lépések bármilyen kombinációját tartalmazhatják.
Fájlok
A Fájlok rész tartalmazza a frissítési hasznos adatok fájljainak metaadatait, például a nevüket, méretüket és kivonatukat. A IoT Hub eszközfrissítése ezt a metaadatokat 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, hogy a telepítés előtt megismételje az integritás-ellenőrzést.
Megjegyzés
A csak hivatkozási lépéseket tartalmazó frissítések nem rendelkeznek hasznos frissítési fájllal a szülőfrissítésben.
Importálási jegyzék létrehozása
Bármilyen szövegszerkesztőt használhat az importálási jegyzékfájl JSON-fájl létrehozásához. Az importálási jegyzékprogramokat programozott módon is létrehozhatja az Azure/iot-hub-device-update szolgáltatásban a GitHubon.
Fontos
Az importálási jegyzékfájl JSON-fájlnevének végződnie kell a .importmanifest.json
Azure Portal keresztüli importáláskor.
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ány egyes eszközfrissítéseihez bizonyos korlátok vannak érvényben. Ha még nem tekintette át őket, tekintse meg az eszközfrissítési korlátokat.
Következő lépések
- Az importálási folyamatról további információt a Frissítés előkészítése importáláshoz című témakörben talál.
- Tekintse át a Jegyzékfájl importálása sémát.