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.
Platí pro:
IoT Edge 1.5
Důležité
Podporovanou verzí je IoT Edge 1.5 LTS. IoT Edge 1.4 LTS je konec životnosti od 12. listopadu 2024. Pokud používáte starší verzi, podívejte se na článek Aktualizace IoT Edge.
Moduly IoT Edge můžou používat úložiště na samotném hostitelském zařízení IoT Edge, aby se zlepšila spolehlivost, zejména pokud pracujete offline.
Konfigurace systémových modulů pro použití trvalého úložiště
Ve výchozím nastavení systémové moduly IoT Edge, agent IoT Edge a centrum IoT Edge ukládají stav do dočasného systému souborů instance kontejneru. Tento stav se ztratí při recyklaci instance kontejneru, například při aktualizaci verze image modulu nebo createOptions.
V produkčních scénářích použijte trvalé umístění úložiště v systému souborů hostitele k uložení stavu systémového modulu. Tím se zlepší odolnost řešení a záruky doručování cloudových zpráv.
Nastavení systémových modulů pro použití trvalého úložiště:
Pro centrum IoT Edge i agenta IoT Edge přidejte proměnnou prostředí s názvem StorageFolder , která odkazuje na adresář v modulu.
Pro centrum IoT Edge i agenta IoT Edge přidejte vazby pro připojení místního adresáře na hostitelském počítači k adresáři v modulu. Příklad:
Nahraďte
<HostStoragePath>a<ModuleStoragePath>cestou úložiště hostitele a modulu. Obě hodnoty musí být absolutní cestou a<HostStoragePath>musí existovat.
Místní úložiště můžete nakonfigurovat přímo v manifestu nasazení. Pokud například chcete namapovat následující cesty k úložišti:
| Modul | Cesta k úložišti hostitele | Cesta k úložišti modulu |
|---|---|---|
| edgeAgent | /srv/edgeAgent | /tmp/edgeAgent |
| edgeHub | /srv/edgeHub | /tmp/edgeHub |
Manifest nasazení by byl podobný následujícímu:
"systemModules": {
"edgeAgent": {
"env": {
"StorageFolder": {
"value": "/tmp/edgeAgent"
}
},
"settings": {
"image": "mcr.microsoft.com/azureiotedge-agent:1.5",
"createOptions": "{\"HostConfig\":{\"Binds\":[\"/srv/edgeAgent:/tmp/edgeAgent\"]}}"
},
"type": "docker"
},
"edgeHub": {
"env": {
"StorageFolder": {
"value": "/tmp/edgeHub"
}
},
"restartPolicy": "always",
"settings": {
"image": "mcr.microsoft.com/azureiotedge-hub:1.5",
"createOptions": "{\"HostConfig\":{\"Binds\":[\"/srv/edgeHub:/tmp/edgeHub\"],\"PortBindings\":{\"443/tcp\":[{\"HostPort\":\"443\"}],\"5671/tcp\":[{\"HostPort\":\"5671\"}],\"8883/tcp\":[{\"HostPort\":\"8883\"}]}}}"
},
"status": "running",
"type": "docker"
}
}
Poznámka:
Pokud používáte instalaci Snap, ujistěte se, že jste zvolili cestu úložiště hostitele, která je přístupná pro Snap. Například $HOME/snap/azure-iot-edge/current/modules/.
Automatická správa oprávnění hostitelského systému
Ve verzi 1.4 a novější není nutné ručně nastavovat vlastnictví ani oprávnění pro zálohování StorageFolderúložiště hostitele . Oprávnění a vlastnictví jsou automaticky spravována systémovými moduly během spouštění.
Poznámka:
Automatická správa oprávnění hostitelského vázaného úložiště se vztahuje jenom na systémové moduly, agenta IoT Edge a centrum Edge. Pro vlastní moduly se vyžaduje ruční správa oprávnění a vlastnictví vázaného hostitelského úložiště, pokud kontejner vlastního modulu není spuštěný jako root uživatel.
Propojení úložiště modulů s úložištěm zařízení pro vlastní moduly
Pokud váš vlastní modul vyžaduje přístup k trvalému úložišti v systému souborů hostitele, použijte možnosti vytvoření modulu k vytvoření složky úložiště v kontejneru modulu ke složce na hostitelském počítači.
Můžete použít bind mount nebo volume mount. Bind mount umožňuje zadat adresář hostitele, který se má připojit k modulu kontejneru. Připojení svazku umožňuje zadat svazek spravovaný Dockerem. Další informace o tom, kdy použít podsystémy "bind mounts" nebo "volume mounts", najdete v dokumentaci k Dockeru pro volume mounts a bind mounts.
Následující příklad ukazuje, jak použít připojení vazby v možnostech vytvoření modulu:
{
"HostConfig": {
"Mounts": [
{
"Target": "<ModuleStoragePath>",
"Source": "<HostStoragePath>",
"Type": "bind",
"ReadOnly": false
}
]
}
}
Nahraďte <HostStoragePath> cestou úložiště hostitele a <ModuleStoragePath> cestou úložiště modulu; obě hodnoty musí být absolutní cestou. Podrobnosti o možnostech najdete ve specifikaci připojení Docker Engine.
Oprávnění hostitelského systému
Ujistěte se, že profil uživatele, který modul používá, má požadovaná oprávnění ke čtení, zápisu a provádění oprávnění k adresáři hostitelského systému. Kontejnery se ve výchozím nastavení spouští jako root uživatel, který už má požadovaná oprávnění. Soubor Dockerfile vašeho modulu ale může určovat použití uživatele, který není root, v takovém případě musí být oprávnění úložiště hostitele nakonfigurovaná ručně.
Existuje několik způsobů, jak spravovat oprávnění adresáře v systémech Linux, včetně použití chown ke změně vlastníka adresáře a následné chmod změny oprávnění. Pokud chcete například povolit přístup k hostitelskému úložišti k modulu, který běží jako ne root USER ID 1000, použijte následující příkazy:
sudo chown 1000 <HostStoragePath>
sudo chmod 700 <HostStoragePath>
Šifrovaná data v úložišti modulů
Když moduly volají rozhraní API pro úlohy démona IoT Edge k šifrování dat, šifrovací klíč se odvozuje pomocí ID modulu a ID generování modulu. ID generace se používá k ochraně tajemství, pokud je modul odstraněn z nasazení a poté je do stejného zařízení nasazen další modul se stejným ID modulu. ID generování modulu můžete zobrazit pomocí příkazu Azure CLI az iot hub module-identity show.
Pokud chcete sdílet soubory mezi moduly napříč generacemi, nesmí obsahovat žádné tajné kódy nebo se jim nepodaří dešifrovat.
Další kroky
Další příklad přístupu k hostitelskému úložišti z modulu najdete v tématu Ukládání dat na hraničních zařízeních pomocí služby Azure Blob Storage ve službě IoT Edge.