Import aktualizací do služby Device Update pro IoT Hub

Pokud chcete do zařízení nasadit aktualizaci ze služby Device Update pro IoT Hub, musíte nejprve tuto aktualizaci importovat do služby Device Update. Importovaná aktualizace se uloží ve službě Device Update a dá se odtud nasadit do zařízení. Tento článek obsahuje přehled některých důležitých konceptů, které je potřeba pochopit při importu aktualizací.

Import manifestu

Manifest importu je soubor JSON, který definuje důležité informace o importu aktualizace. V rámci procesu importu odešlete manifest importu i přidružený soubor nebo soubory aktualizace (například balíček aktualizace firmwaru). Metadata definovaná v manifestu importu se používají k ingestování aktualizace. Některá metadata se také používají v době nasazení – například k ověření, jestli byla aktualizace správně nainstalovaná.

Příklad:

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

Manifest importu obsahuje několik položek, které představují důležitou aktualizaci zařízení pro IoT Hub koncepty. Tyto položky jsou popsané v této části. Informace o úplném schématu importu najdete v tématu Import schématu JSON manifestu.

Aktualizace identity

Identita aktualizace nebo id aktualizace je jedinečný identifikátor aktualizace ve službě Device Update pro IoT Hub. Skládá se ze tří částí:

  • Poskytovatel: entita, která vytváří aktualizaci nebo za aktualizaci přímo zodpovídá. Často se jedná o název společnosti.
  • Název: identifikátor třídy aktualizací. Často se jedná o název třídy zařízení nebo modelu.
  • Verze: Číslo verze, které odlišuje tuto aktualizaci od ostatních, které mají stejného zprostředkovatele a stejný název.

Příklad:

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

Poznámka

UpdateId používá jenom služba Device Update a může se lišit od identit skutečných softwarových komponent v zařízení.

Kompatibilita

Kompatibilita definuje kritéria zařízení, které může aktualizaci nainstalovat. Obsahuje vlastnosti zařízení, které jsou sadou dvojic libovolných hodnot klíčů, které jsou hlášeny ze zařízení. K nasazení budou mít nárok jenom zařízení s odpovídajícími vlastnostmi. Aktualizace může být kompatibilní s více třídami zařízení, protože má více než jednu sadu vlastností zařízení.

Tady je příklad aktualizace, kterou je možné nasadit jenom do zařízení, které hlásí společnost Contoso a Toustovač jako výrobce a model zařízení.

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

Pokyny

Část Pokyny obsahuje potřebné informace nebo kroky pro agenta zařízení k instalaci aktualizace. Nejjednodušší aktualizace obsahuje jeden vložený krok. Tento krok spustí soubor zahrnuté datové části pomocí obslužné rutiny zaregistrované u agenta zařízení:

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

Tip

handler je ekvivalentní v updateType manifestu importu verze 3.0 nebo starší.

Aktualizace může obsahovat více než jeden krok:

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

Aktualizace může obsahovat referenční kroky, které agentovi zařízení dají pokyn, aby zcela nainstaloval další aktualizaci s vlastním manifestem importu a nastavil vztah nadřazené a podřízené aktualizace. Například aktualizace toustovače může obsahovat dvě podřízené aktualizace:

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

Poznámka

Aktualizace může obsahovat libovolnou kombinaci vložených a referenčních kroků.

Soubory

Část Soubory obsahuje metadata souborů datové části aktualizace, jako jsou jejich názvy, velikosti a hodnota hash. Aktualizace zařízení pro IoT Hub používá tato metadata k ověření integrity během procesu importu. Stejné informace se pak předávají agentu zařízení, aby před instalací zopakoval ověření integrity.

Poznámka

Aktualizace, která obsahuje pouze referenční kroky, nebude mít v nadřazené aktualizaci žádný soubor datové části aktualizace.

Vytvoření manifestu importu

I když je možné ručně vytvořit json manifestu importu pomocí textového editoru, rozhraní příkazového řádku Azure (CLI) tento proces výrazně zjednodušuje. Až budete připraveni vyzkoušet vytvoření manifestu importu, můžete použít průvodce postupy.

Důležité

Název souboru JSON manifestu importu musí při importu prostřednictvím Azure Portal končit .importmanifest.json na .

Tip

Pomocí editoru Visual Studio Code povolte automatické dokončování a ověřování schématu JSON při vytváření manifestu importu.

Omezení importu aktualizací

Pro každou aktualizaci zařízení pro IoT Hub instanci se vynucují určitá omezení. Pokud jste je ještě nezkontrolovali, přečtěte si téma Limity aktualizací zařízení.

Další kroky