Sdílet prostřednictvím


Vývoj vlastních modulů IoT Edge

Použitelné pro:IoT Edge 1.5 zaškrtnuto 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 ModuleClient tří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ší ModuleClient třídy.
  • Pokud chcete odeslat tento výstupní koncový bod do IoT Hub, nastavte trasu v modulu edgeHub zaří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.

Další kroky