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.
Použitelné pro:
IoT Edge 1.5
Důležité
IoT Edge 1.5 LTS je podporovaná verze. IoT Edge 1,4 LTS dosáhl konce životnosti 12. listopadu 2024. Pokud používáte starší verzi, přečtěte si téma Update IoT Edge.
Azure IoT Edge moduly se můžou připojit k dalším Azure službám a přispět k vašemu většímu cloudovému datovému kanálu. Tento článek popisuje, jak můžete vyvíjet moduly pro komunikaci s modulem IoT Edge runtime a IoT Hub, a proto zbytek Azure cloudu.
prostředí IoT Edge runtime
Modul runtime IoT Edge poskytuje infrastrukturu pro integraci funkcí více modulů IoT Edge a jejich nasazení do IoT Edge zařízení. Jakýkoli program lze zabalit jako modul IoT Edge. Pokud chcete plně využít výhod IoT Edge funkcí komunikace a správy, může program spuštěný v modulu použít sadu AZURE IOT Device SDK k připojení k místnímu centru IoT Edge.
Zabalení programu jako modulu IoT Edge
Pokud chcete program nasadit na IoT Edge zařízení, musíte ho nejprve kontejnerizovat a spustit pomocí modulu kompatibilního s Dockerem. IoT Edge jako modul kompatibilní s Dockerem používá Moby opensourcový projekt za Dockerem. Do modulů IoT Edge můžete předat stejné parametry, na které jste zvyklí s Dockerem. Další informace najdete v tématu Jak konfigurovat možnosti vytváření kontejnerů pro moduly IoT Edge.
Použití centra IoT Edge
Centrum IoT Edge poskytuje dvě hlavní funkce: proxy server pro IoT Hub a místní komunikaci.
Připojení k centru IoT Edge z modulu
Připojení k místnímu centru IoT Edge z modulu zahrnuje stejné kroky připojení jako pro všechny klienty. Další informace najdete v tématu Pojení k centru IoT Edge.
Pokud chcete použít směrování IoT Edge přes AMQP, můžete použít ModuleClient z Azure IoT SDK. Vytvořte instanci ModuleClient pro připojení modulu k centru IoT Edge spuštěného na zařízení, podobně jako DeviceClient instance připojují zařízení IoT k IoT Hub. Další informace o třídě ModuleClient a jejích metodách komunikace najdete v referenčních informacích k rozhraní API pro preferovaný jazyk sady SDK: C#, C, Python, Java nebo Node.js.
základní prvky IoT Hub
IoT Hub nahlíží na instanci modulu podobně jako na zařízení. Instance modulu může:
- Odesílání zpráv od zařízení do cloudu.
- Získejte přímé metody cílené speciálně na svou identitu.
- Mějte modulové dvojče, které je odlišné a izolované od dvojčete zařízení a ostatních modulových dvojčat tohoto zařízení.
Moduly v současné době nemůžou přijímat zprávy z cloudu do zařízení nebo používat funkci pro nahrávání souborů.
Při psaní modulu se můžete připojit k centru IoT Edge a používat metody IoT Hub stejně jako při práci s IoT Hub v aplikaci pro zařízení. Jediným rozdílem mezi moduly IoT Edge a aplikacemi zařízení IoT je, že s moduly musíte místo identity zařízení odkazovat na identitu modulu.
Zprávy z zařízení do cloudu
Modul IoT Edge může odesílat zprávy do cloudu prostřednictvím centra IoT Edge, který funguje jako místní zprostředkovatel a šíří zprávy do cloudu. Aby bylo možné povolit komplexní zpracování zpráv typu zařízení-cloud, může modul IoT Edge zachytit a zpracovávat zprávy odeslané jinými moduly nebo zařízeními do místního centra IoT Edge. Modul IoT Edge pak odešle nové zprávy se zpracovanými daty. Tímto způsobem můžete vytvořit řetězy IoT Edge modulů pro sestavení místních kanálů zpracování.
Odesílání zpráv telemetrie zařízení do cloudu pomocí tras:
- Použijte třídu
ModuleClienttřídy Azure IoT SDK. Každý modul má vstupní a výstupní koncové body. - Pokud chcete odesílat zprávy na výstupním koncovém bodu modulu, použijte metodu odeslání zprávy z vaší
ModuleClienttřídy. - Pokud chcete odeslat tento výstupní koncový bod do IoT Hub, nastavte trasu v modulu
edgeHubzařízení.
Zpracování zpráv pomocí tras:
- Nastavte trasu pro odesílání zpráv přicházejících z jiného koncového bodu (modulu nebo zařízení) do vstupního koncového bodu modulu.
- Poslouchejte zprávy na vstupním koncovém bodu modulu. Pokaždé, když se nová zpráva vrátí, Azure IoT SDK aktivuje funkci zpětného volání.
- Zpracujte zprávu pomocí této funkce zpětného volání a volitelně odešlete nové zprávy do fronty koncového bodu modulu.
Poznámka:
Další informace o deklarování trasy najdete v tématu Uučte se nasazovat moduly a navazovat trasy v IoT Edge.
Dvojčata
Twins jsou jedním z primitiv poskytovaných IoT Hub. Dvojčata jsou dokumenty JSON, které ukládají informace o stavu, včetně metadat, konfigurace a podmínek. Každý modul nebo zařízení má vlastní dvojče.
- Pokud chcete získat dvojče modulu pomocí Azure IoT SDK, zavolejte metodu
ModuleClient.getTwin. - Pokud chcete získat opravu dvojčete modulu pomocí Azure IoT SDK, implementujte funkci zpětného volání a zaregistrujte ji pomocí metody
ModuleClient.moduleTwinCallback, aby se funkce zpětného volání aktivovala pokaždé, když přijde oprava dvojčete.
Příjem přímých metod
Pokud chcete získat přímou metodu pomocí metody Azure IoT SDK, implementujte funkci zpětného volání a zaregistrujte ji pomocí metody ModuleClient.methodCallback tak, aby se funkce zpětného volání aktivovala pokaždé, když přijde přímá metoda.
Podpora jazyka a architektury
IoT Edge podporuje více operačních systémů, architektur zařízení a vývojových jazyků, abyste mohli vytvořit scénář, který odpovídá vašim potřebám. V této části se seznamte s možnostmi vývoje vlastních modulů IoT Edge. Další informace o podpoře a požadavcích na nástroje pro každý jazyk najdete v Připravení vývojového a testovacího prostředí pro IoT Edge.
Operační systém Linux
Pro všechny jazyky v následující tabulce IoT Edge podporuje vývoj pro AMD64 a většinu ARM64 Linux kontejnerů. Podporuje také kontejnery DEBIAN 11 ARM32.
| Vývojový jazyk | Vývojářské nástroje |
|---|---|
| C | Visual Studio Code Visual Studio 2019/2022 |
| jazyk C# | Visual Studio Code Visual Studio 2019/2022 |
| Java | Visual Studio Code |
| Node.js | Visual Studio Code |
| Python | Visual Studio Code |
Poznámka:
Pro kompilaci mezi platformami, jako je kompilace modulu ARM32 IoT Edge na vývojovém počítači AMD64, musíte nakonfigurovat vývojový počítač tak, aby kompiloval kód v architektuře cílového zařízení odpovídající modulu IoT Edge. Další informace o architekturách cílových zařízení najdete v tématu Tutorial: Vývoj modulů Azure IoT Edge pomocí Visual Studio Code.
Windows
Microsoft už nepodporuje kontejnery Windows. IoT Edge pro Linux ve Windows je doporučený způsob, jak spustit IoT Edge na zařízeních s Windows.
Zabezpečení modulu
Vyvíjejte moduly s ohledem na zabezpečení. Další informace o zabezpečení modulů najdete v tématu Zabezpečení Modulu Dockeru.
Aby se zlepšilo zabezpečení modulů, IoT Edge ve výchozím nastavení zakáže některé funkce kontejneru. Výchozí hodnoty můžete přepsat tak, aby v případě potřeby poskytovaly privilegované funkce modulům.
Povolit zvýšená oprávnění Dockeru
V konfiguračním souboru na zařízení IoT Edge řídí parametr s názvem allow_elevated_docker_permissions zvýšená oprávnění Dockeru. Pokud je nastavena hodnota true, tento příznak udělí --privileged příznak a všechny další funkce, které definujete v CapAdd poli Docker HostConfig v možnostech vytvoření kontejneru.
Poznámka:
V současné době je tento příznak ve výchozím nastavení pravdivý, což uděluje privilegovaná oprávnění k nasazení. Nastavte tento příznak na false , aby se zlepšilo zabezpečení zařízení.
Povolení CAP_CHOWN a CAP_SETUID
Funkce Dockeru CAP_CHOWN a CAP_SETUID jsou ve výchozím nastavení zakázané. Tyto funkce můžou zapisovat do zabezpečených souborů na hostitelském zařízení a potenciálně získat root oprávnění.
Pokud tyto schopnosti potřebujete, ručně je znovu povolte pomocí možnosti vytvoření kontejneru CapADD.