Az Azure Device Update for IoT Hub importálási fogalmai
Ha egy frissítést az IoT Hubhoz készült Azure Device Update használatával szeretne üzembe helyezni az eszközökön, először importálja a frissítést az Eszközfrissítés szolgáltatásba, amely tárolja az importált frissítést, és telepíti 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ása során.
Jegyzék importálása
Az importálási jegyzék egy JSON-fájl, amely az importálandó frissítéssel kapcsolatos fontos információkat határozza meg. 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 a belső vezérlőprogram frissítési csomagját. Az importálási jegyzékben definiált metaadatok a frissítés betöltésére szolgálnak. Néhány metaadat az üzembe helyezéskor is használható, például annak ellenőrzésére, hogy egy frissítés megfelelően van-e telepítve.
Az alábbi JSON-kód egy példa importálási jegyzékfájlt mutat be:
{
"updateId": {
"provider": "Contoso",
"name": "Toaster",
"version": "1.0"
},
"isDeployable": false,
"compatibility": [
{
"manufacturer": "Contoso",
"model": "Toaster"
}
],
"instructions": {
"steps": [
{
"handler": "microsoft/swupdate:2",
"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ékfájl szakaszai az eszközfrissítés fontos fogalmait jelölik, az alábbi szakaszokban leírtak szerint. A teljes importálási jegyzéksémáról további információt a Jegyzékfájl importálása JSON-sémában talál.
Identitás frissítése
A frissítési identitás vagy updateId
az eszközfrissítésben lévő frissítés egyedi azonosítója, és a következő tulajdonságokat tartalmazza:
- A szolgáltató az az entitás, amely létrehozza vagy felelős a frissítésért. A szolgáltató gyakran cégnév.
- A név egy frissítési osztály azonosítója. A név gyakran eszközosztály vagy modellnév.
- A verzió egy szám, amely megkülönbözteti ezt a frissítést a többitől ugyanazzal a szolgáltatóval és névvel.
Például:
{
"updateId": {
"provider": "Contoso",
"name": "Toaster",
"version": "1.0"
}
}
Feljegyzés
Ezt updateId
csak az Eszközfrissítési szolgáltatás használja, és eltér az eszközökön található szoftverösszetevő-identitásoktól.
Kompatibilitás
A Kompatibilitás szakasz egy vagy több tetszőleges kulcs-érték pár használatával határozza meg a frissítést telepítő eszközöket. A frissítés üzembe helyezésére csak azok az eszközök jogosultak, amelyek a kompatibilitási értékekkel egyező tulajdonságokat jelentenek. Egy frissítés több eszközosztálysal is kompatibilissé alakítható, ha több eszközkompatibilitási tulajdonságot is tartalmaz.
Az alábbi példa egy olyan frissítést mutat be, amely csak olyan eszközökön telepíthető, amelyek a Contoso-t és a Toastert jelentik eszközgyártóként és -modellként.
{
"compatibility": [
{
"manufacturer": "Contoso",
"model": "Toaster"
}
]
}
Utasítások
Az Utasítások szakasz 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, amely végrehajtja a frissítés hasznos adatfájlját egy, az eszközügynökben regisztrált kezelő használatával. Az alábbi példa egy egylépéses utasításokat tartalmazó szakaszt mutat be.
{
"instructions": {
"steps": [
{
"handler": "microsoft/swupdate:2",
"files": [
"contoso.toaster.1.0.swu"
]
}
]
}
}
Feljegyzés
A handler
tulajdonság egyenértékű az importálási updateType
jegyzék 3.0-s vagy újabb verziójában szereplő tulajdonságával.
Egy frissítés több lépést is tartalmazhat, ahogyan az alábbi példában is látható:
{
"instructions": {
"steps": [
{
"description": "pre-install script",
"handler": "microsoft/script:1",
"handlerProperties": {
"arguments": "--pre-install"
},
"files": [
"configure.sh"
]
},
{
"description": "firmware package",
"handler": "microsoft/swupdate:2",
"files": [
"contoso.toaster.1.0.swu"
]
}
]
}
}
A frissítés tartalmazhat hivatkozási lé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ékével, és hozzon létre egy szülő- és gyermekfrissítési kapcsolatot. A frissítés tartalmazhat beágyazott és hivatkozási lépések tetszőleges kombinációját.
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"
}
}
]
}
}
Fájlok
Az importálási jegyzék Fájlok szakasza olyan hasznos adatfájl-metaadatokat tartalmaz, mint a name
, size
és hash
. Az Eszközfrissítés ezt a metaadatot használja az importálási folyamat során az integritás ellenőrzéséhez, és ugyanazokat az információkat továbbítja az eszközügynöknek az integritás-ellenőrzéshez a telepítés előtt.
Feljegyzés
A csak hivatkozási lépéseket tartalmazó szülőfrissítések nem határoznak meg hasznos adatfájlokat a frissítéshez.
Importálási jegyzék létrehozása
Bár az importálási jegyzék JSON-t manuálisan is meg lehet adni szövegszerkesztővel, az Azure 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 Eszközfrissítési szolgáltatásba az Azure Portalon keresztül történő importáláshoz az importálási jegyzék JSON-fájlnevének .importmanifest.json kell végződnie.
Tipp.
Az importálási jegyzék létrehozásakor a Visual Studio Code használatával engedélyezheti az automatikus kiegészítést és a JSON-sémaérvényesítést.
Importálási korlátok frissítése
Az IoT Hub-példány egyes eszközfrissítéseihez bizonyos korlátokat kell érvényesíteni. Ha még nem tekintette át őket, tekintse meg az eszközfrissítés korlátait.