Import aktualizací do služby Device Update pro IoT Hub
Pokud chcete nasadit aktualizaci do zařízení ze služby Device Update pro IoT Hub, musíte ji nejprve importovat do služby Device Update. 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. Manifest importu i přidružený soubor nebo soubory aktualizace (například balíček aktualizace firmwaru) odešlete jako součást procesu importu. 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 nainstalována správně.
Příklad:
{
"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"
}
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.
Aktualizovat identitu
Identita aktualizace nebo updateId 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 ni přímo zodpovídá. Často se jedná o název společnosti.
- Název: identifikátor třídy aktualizací. Často se jedná o třídu zařízení nebo název modelu.
- Verze: Číslo verze odliší tuto aktualizaci od ostatních, které mají stejného poskytovatele a název.
Příklad:
{
"updateId": {
"provider": "Contoso",
"name": "Toaster",
"version": "1.0"
}
}
Poznámka
UpdateId se používá pouze službou Device Update a může se lišit od identit skutečných softwarových komponent na zařízení.
Kompatibilita
Kompatibilita definuje kritéria zařízení, které může aktualizaci nainstalovat. Obsahuje vlastnosti zařízení, které jsou sadou dvojic hodnot libovolného klíče, které jsou hlášeny ze zařízení. K nasazení budou mít nárok pouze 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 pouze do zařízení, které hlásí společnosti Contoso a Toustovač jako výrobce a model zařízení.
{
"compatibility": [
{
"deviceManufacturer": "Contoso",
"deviceModel": "Toaster"
}
]
}
Pokyny
Část Pokyny obsahuje nezbytné informace nebo kroky pro instalaci aktualizace agentem zařízení. Nejjednodušší aktualizace obsahuje jeden vložený krok. Tento krok spustí zahrnutý soubor 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 nainstaloval úplně další aktualizaci s vlastním manifestem importu a navazoval vztah nadřazené a podřízené aktualizace. Například aktualizace topinkovač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 hodnoty 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
K vytvoření souboru JSON manifestu importu můžete použít libovolný textový editor. K dispozici jsou také ukázkové skripty pro programové vytváření manifestu importu v Azure/iot-hub-device-update na GitHubu.
Důležité
Při importu prostřednictvím Azure Portal musí název souboru JSON manifestu importu 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é limity. Pokud jste je ještě nezkontrolovali, podívejte se na limity služby Device Update.
Další kroky
- Další informace o procesu importu najdete v tématu Příprava aktualizace na import.
- Zkontrolujte schéma importu manifestu.