Megosztás a következőn keresztül:


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