Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Vícestupňové řízené spuštění vám umožňuje spouštět úlohy před instalačními a po instalačními úlohami při nasazování na dálku prováděné aktualizace. Tato funkce je součástí schématu Manifestu aktualizace Public Preview Refresh verze 4.
Před kontrolou následujících změn v rámci aktualizovaného vydání Public Preview si projděte dokumentaci k manifestu aktualizace.
Při vícestupňovém řízení existují dva typy kroků:
- Vložený krok (výchozí)
- Referenční krok
Příklad manifestu aktualizace s jedním krokem vkládání:
{
"updateId": {...},
"isDeployable": true,
"compatibility": [
{
"deviceManufacturer": "du-device",
"deviceModel": "e2e-test"
}
],
"instructions": {
"steps": [
{
"description": "Example APT update that install libcurl4-doc on a host device.",
"handler": "microsoft/apt:1",
"files": [
"apt-manifest-1.0.json"
],
"handlerProperties": {
"installedCriteria": "apt-update-test-1.0"
}
}
]
},
"manifestVersion": "4.0",
"importedDateTime": "2021-11-16T14:54:55.8858676Z",
"createdDateTime": "2021-11-16T14:50:47.3511877Z"
}
Příklad manifestu aktualizace se dvěma integrovanými kroky:
{
"updateId": {...},
"isDeployable": true,
"compatibility": [
{
"deviceManufacturer": "du-device",
"deviceModel": "e2e-test"
}
],
"instructions": {
"steps": [
{
"description": "Install libcurl4-doc on host device",
"handler": "microsoft/apt:1",
"files": [
"apt-manifest-1.0.json"
],
"handlerProperties": {
"installedCriteria": "apt-update-test-2.2"
}
},
{
"description": "Install tree on host device",
"handler": "microsoft/apt:1",
"files": [
"apt-manifest-tree-1.0.json"
],
"handlerProperties": {
"installedCriteria": "apt-update-test-tree-2.2"
}
}
]
},
"manifestVersion": "4.0",
"importedDateTime": "2021-11-16T20:21:33.6514738Z",
"createdDateTime": "2021-11-16T20:19:29.4019035Z"
}
Příklad manifestu aktualizace s jedním referenčním krokem:
Nadřazená aktualizace, která odkazuje na podřízenou aktualizaci
{ "updateId": {...}, "isDeployable": true, "compatibility": [ { "deviceManufacturer": "du-device", "deviceModel": "e2e-test" } ], "instructions": { "steps": [ { "type": "reference", "description": "Cameras Firmware Update", "updateId": { "provider": "contoso", "name": "virtual-camera", "version": "1.2" } } ] }, "manifestVersion": "4.0", "importedDateTime": "2021-11-17T07:26:14.7484389Z", "createdDateTime": "2021-11-17T07:22:10.6014567Z" }Podřízená aktualizace s krokovými instrukcemi
{ "updateId": { "provider": "contoso", "name": "virtual-camera", "version": "1.2" }, "isDeployable": false, "compatibility": [ { "group": "cameras" } ], "instructions": { "steps": [ { "description": "Cameras Update - pre-install step", "handler": "microsoft/script:1", "files": [ "contoso-camera-installscript.sh" ], "handlerProperties": { "scriptFileName": "contoso-camera-installscript.sh", "arguments": "--pre-install-sim-success --component-name --component-name-val --component-group --component-group-val --component-prop path --component-prop-val path", "installedCriteria": "contoso-virtual-camera-1.2-step-0" } }, { "description": "Cameras Update - firmware installation (failure - missing file)", "handler": "microsoft/script:1", "files": [ "contoso-camera-installscript.sh", "camera-firmware-1.1.json" ], "handlerProperties": { "scriptFileName": "missing-contoso-camera-installscript.sh", "arguments": "--firmware-file camera-firmware-1.1.json --component-name --component-name-val --component-group --component-group-val --component-prop path --component-prop-val path", "installedCriteria": "contoso-virtual-camera-1.2-step-1" } }, { "description": "Cameras Update - post-install step", "handler": "microsoft/script:1", "files": [ "contoso-camera-installscript.sh" ], "handlerProperties": { "scriptFileName": "contoso-camera-installscript.sh", "arguments": "--post-install-sim-success --component-name --component-name-val --component-group --component-group-val --component-prop path --component-prop-val path", "installedCriteria": "contoso-virtual-camera-1.2-stop-2" } } ] }, "referencedBy": [ { "provider": "DU-Client-Eng", "name": "MSOE-Update-Demo", "version": "3.1" } ], "manifestVersion": "4.0", "importedDateTime": "2021-11-17T07:26:14.7376536Z", "createdDateTime": "2021-11-17T07:22:09.2232968Z", "etag": "\"ad7a553d-24a8-492b-9885-9af424d44d58\"" }
Poznámka:
V manifestu aktualizace by měl mít každý krok jiný nainstalovaný řetězecCriteria , pokud se tento řetězec používá k určení, zda má být krok proveden, nebo ne.
Aktualizace nadřazených a podřízených
Při vzájemném odkazu na manifesty aktualizace se manifest nejvyšší úrovně nazývá nadřazená aktualizace a manifest zadaný v kroku odkazu se nazývá podřízená aktualizace.
V současné době aktualizace dítěte nemůže obsahovat žádné referenční kroky. Toto omezení se ověří v době importu a pokud se nepoužijí, import se nezdaří.
Kroky vložené v rámci nadřazené aktualizace
Vložené kroky zadané v nadřazené aktualizaci se použijí na hostitelské zařízení. Zde je objekt ADUC_WorkflowData, který se předává obslužné rutině kroku (také nazývané obslužnou rutinou aktualizačního obsahu), a nebude obsahovat data Selected Components. Obslužná rutina pro tento typ kroku by neměla být obslužnou rutinou Component-Aware .
Kroky obsahového zpracovatele uplatňují logiku ověřování IsInstalled pro každý krok. Obslužná rutina kroku agenta Device Update zkontroluje, jestli je konkrétní aktualizace již nainstalovaná, a zkontroluje, jestli je Výsledkem IsInstalled() kód výsledku 900, což znamená true. Pokud už je aktualizace nainstalovaná, aby se zabránilo přeinstalaci aktualizace, která už je na zařízení, agent DU přeskočí budoucí kroky, protože ho použijeme k určení, jestli se má krok provést, nebo ne.
Pokud chcete hlásit výsledek aktualizace, musí být výsledek provádění obslužné rutiny kroku zapsán do ADUC_Result struktury v požadovaném výsledném souboru, jak je uvedeno v parametru --result-file. Poté na základě výsledků spuštění pro úspěšné provedení vraťte 0, a pro všechny fatální chyby vraťte hodnotu -1 nebo 0xFF.
Další informace naleznete v tématu Kroky obslužné rutiny obsahu a implementace vlastní obslužné rutiny obsahu pracující s komponentou.
Referenční kroky v nadřazené aktualizaci
Referenční kroky zadané v nadřazené aktualizaci se použijí na komponenty v hostitelském zařízení nebo připojené k hostitelskému zařízení. Referenční krok je krok, který obsahuje identifikátor aktualizace jiné aktualizace označovaný jako podřízená aktualizace.
Při zpracování referenčního kroku zpracovatel kroků stáhne odpojený soubor manifestu aktualizace uvedený v datech referenčního kroku a pak ověří integritu souboru. Dále obslužná rutina kroků parsuje podřízený manifest aktualizace a vytvoří objekt ADUC_Workflow (označovaný také jako podřízená data pracovního postupu) zkombinováním dat z podřízeného manifestu aktualizace a informací o adresách URL souborů z nadřazeného manifestu aktualizace. Data podřízeného pracovního postupu mají také vlastnost 'level' nastavenou na hodnotu '1'.
Poznámka:
Dětské aktualizace v současné době nemohou obsahovat žádné referenční kroky.
Samostatné manifesty aktualizací
Aby se zabránilo selhání nasazení kvůli omezením velikosti dat dvojčete služby IoT Hub, doručí se jakýkoli manifest velkých aktualizací ve formě datového souboru JSON, kterému se také říká manifest odpojené aktualizace.
Pokud se do služby Device Update pro IoT Hub naimportuje aktualizace s velkým obsahem, bude vygenerovaný manifest aktualizace obsahovat jiný soubor datové části s názvem Detached Update Manifest, který obsahuje úplná data manifestu aktualizace.
Vlastnost UpdateManifest ve dvojčeti zařízení nebo modulu bude obsahovat informace o odpojené aktualizaci souboru manifestu.
Při zpracování události změny vlastnosti PnP agent Device Update automaticky stáhne odpojený soubor manifestu aktualizace a vytvoří ADUC_WorkflowData objekt, který obsahuje úplná data manifestu aktualizace.