Nastavení azure IoT Edge pro Azure Sphere

Azure IoT Edge poskytuje vrstvu filtrování a zpracování dat mezi podřízeným zařízením, jako je Azure Sphere a Azure IoT Hub. Pokud vaše zařízení Azure Sphere vytváří značné množství dat nebo dat, která vyžadují následné zpracování, zvažte použití Azure IoT Edge.

Toto téma popisuje postup nastavení zařízení Azure IoT Edge s Azure Sphere. Azure Sphere podporuje verze 1.1 i 1.2 azure IoT Edge. V pokynech jsou zaznamenány významné rozdíly. Hlavní rozdíly jsou:

  • Název balíčku se změnil z iotedge na aziot-edge.
  • Výchozí konfigurační soubor má nový název a umístění. V Azure IoT Edge 1.1 byl konfigurační soubor /etc/iotedge/config.yaml. V Azure IoT Edge 1.2 je konfiguračním souborem /etc/aziot/config.toml.
  • Azure IoT Edge 1.2 vyžaduje plně kvalifikovaný název domény (FQDN) přístupný přes server DNS v síti.

Po dokončení úkolů v tomto tématu se vaše zařízení Azure Sphere nakonfiguruje tak, aby odesílala data do Azure IoT Hub prostřednictvím zařízení Azure IoT Edge, které funguje jako transparentní brána. Další filtrování a zpracování dat pomocí modulu na zařízení Azure IoT Edge můžete přidat podle průvodce modulem Azure IoT Edge.

Než začnete

Kroky v tomto tématu předpokládají, že:

  • Zařízení Azure Sphere je připojené k počítači přes USB.
  • Máte předplatné Azure.
  • Vytvořili jste instanci Azure IoT Hub a ručně jste zřídili zařízení. Mějte na paměti, že pro IoT Hub později v postupu (krok 6) budete muset použít certifikát certifikační autority katalogu.
  • Vytvořili jste skupinu prostředků a všechny prostředky související s Azure IoT Hub a IoT Edge službami musí patřit do této skupiny prostředků.

Důležité

I když můžete vytvořit předplatné Azure zdarma, proces registrace vyžaduje, abyste zadali číslo platební karty. Azure poskytuje několik úrovní služby předplatného. Ve výchozím nastavení se při vytváření Azure IoT Hub instance vybere úroveň Standard, která vyžaduje měsíční poplatek za služby. Pokud se chcete vyhnout měsíčním poplatkům, vyberte úroveň Free. Úroveň Free zahrnuje služby potřebné k používání zařízení s instancí Azure IoT Hub, včetně dvojčete zařízení. Pokud nemáte předplatné Azure, vytvořte si bezplatný účet , než začnete.

Přehled

Nastavení zařízení Azure IoT Edge a jeho konfigurace pro práci se zařízením Azure Sphere vyžaduje vícekrokový proces a měli byste si naplánovat přibližně 8 hodin, než projdete jednotlivými kroky, zejména pokud neznáte Azure IoT Edge. Pokud s Azure IoT Edge pracujete poprvé, postupujte podle pokynů pro rychlý start v jednotlivých částech a nastavte a nakonfigurujte IoT Edge zařízení, které běží na virtuálním počítači s Linuxem.

Tyto kroky musí být dokončeny pouze jednou pro katalog Azure Sphere a zařízení Azure IoT Edge. Každé zařízení Azure Sphere však musí být ručně nakonfigurováno v Azure IoT Hub a zařízení Azure IoT Edge musí být nastaveno jako nadřazené zařízení Azure Sphere.

Kroky nastavení je možné rozdělit do tří logických seskupení:

  • Vytvoření a konfigurace IoT Edge zařízení jako transparentní brány

    • Krok 1. Vytvořte zařízení Azure IoT Edge.
    • Krok 2. Nakonfigurujte zařízení brány Azure IoT Edge jako server.
    • Krok 3. Otevřete porty zařízení brány Azure IoT Edge pro komunikaci.
    • Krok 4. Aktualizujte název hostitele brány v souboru config.toml (Azure IoT Edge verze 1.2) nebo config.yaml (Azure IoT Edge verze 1.1).
  • Konfigurace zařízení Azure Sphere v Azure IoT Hub

    • Krok 5. Nastavte zařízení Azure IoT Edge jako nadřazené zařízení Azure Sphere.
  • Navázání důvěryhodného připojení mezi zařízením Azure Sphere a zařízením IoT Edge

    • Krok 6. Do zařízení Azure IoT Edge zadejte certifikát certifikační autority katalogu zařízení Azure Sphere.
    • Krok 7. Poskytněte zařízení Azure Sphere certifikát kořenové certifikační autority zařízení Azure IoT Edge.

Krok 1. Vytvoření zařízení Azure IoT Edge

Pokud jste to ještě neudělali, musíte nastavit zařízení Azure IoT Edge a zaregistrovat ho u Azure IoT Hub.

Ke zřízení zařízení Azure IoT Edge můžete použít službu Device Provisioning Service (DPS). Službu DPS ale nemůžete použít ke zřízení zařízení Azure Sphere. Automatické zřizování podřízených zařízení azure IoT Edge zařízení s Azure IoT Hub DPS se nepodporuje.

Můžete postupovat podle kroků v rychlém startu pro IoT Edge a nastavit zařízení Azure IoT Edge, které běží na virtuálním počítači s Linuxem nebo zařízení s Windows, a zaregistrovat ho pomocí Azure IoT Hub.

Kroky v rychlém startu vám použijí k následujícím krokům:

  • Zaregistrujte zařízení Azure IoT Edge v instanci Azure IoT Hub. V tomto kroku nevytvávejte nové centrum IoT, stačí zaregistrovat zařízení Azure IoT Edge do služby IoT Hub, kterou jste už vytvořili.
  • Nainstalujte a spusťte modul runtime Azure IoT Edge na zařízení Azure IoT Edge.

Poznámka

V rychlém startu IoT Edge před nasazením modulu zastavte.

Krok 2. Konfigurace zařízení brány IoT Edge jako serveru

Postupujte podle pokynů a nakonfigurujte zařízení Azure IoT Edge tak, aby fungovalo jako transparentní brána (Azure IoT Edge 1.2) nebo Azure IoT Edge 1.1, ale zastavte ho, až přejdete do části Otevření portů na zařízení brány. I když tyto pokyny říkají, že máte soubory certifikátů zkopírovat do IoT Edge zařízení, nekopírujte je do virtuálního počítače až do kroku 8 tohoto postupu.

V rámci kroků, které jste dokončili při konfiguraci brány zařízení jako serveru, už budete mít:

  • Nakonfigurovali certifikáty zařízení Azure IoT Edge.
  • Nasadili jsme modul Azure IoT Edge Hub.
  • Nakonfigurované směrování zpráv přes Azure IoT Edge.

V rámci těchto kroků také vytvoříte tyto certifikáty:

  • Certifikát kořenové certifikační autority: certs/azure-iot-test-only.root.ca.cert.pem
  • Certifikát certifikační autority zařízení a privátní klíč (slouží k registraci IoT Edge zařízení v IoT Hub):
    • certs/iot-edge-device-identity-<cert-name>-full-chain.cert.pem
    • private/iot-edge-device-identity-<cert-name>.key.pem
  • IoT Edge certifikát a privátní klíč certifikační autority (který se zkopíruje do IoT Edge zařízení a odkazuje se na ho v jeho konfiguračním souboru):
    • certs/iot-edge-device-ca-<cert-name>-full-chain.cert.pem
    • private/iot-edge-device-ca-<cert-name>.key.pem

Pokud používáte rychlý start, postupujte podle pokynů pro Linux ke konfiguraci ukázkových certifikátů, pokud počítač, na kterém certifikáty generujete, je počítač se systémem Linux. Pokud počítač, na kterém certifikáty generujete, je počítač se systémem Windows, použijte pokyny systému Windows k vygenerování ukázkových certifikátů. Informace o kopírování kořenových certifikátů na virtuální počítač s Linuxem nebo na místní počítač s Windows najdete v části věnované kopírování kořenových certifikátů.

Certifikát kořenové certifikační autority Azure IoT Edge se upraví v kroku 7, ale v kroku 8 budete potřebovat původní certifikát. Uchovávejte kopii původního certifikátu, abyste ho mohli znovu použít.

Poznámka

Při aktualizaci oddílu certifikátů souboru config.toml (Azure IoT Edge 1.2) nebo config.yaml (Azure IoT Edge 1.1) se ujistěte, že certificates: řádek v souboru config.toml (Azure IoT Edge 1.2) nebo config.yaml (Azure IoT Edge 1.1) neobsahuje žádné předchozí prázdné znaky a že každý z vnořených certifikátů je odsazený dvěma mezerami.

Po aktualizaci souboru ověřte, že na zařízení Azure IoT Edge běží modul EdgeHub:

sudo iotedge list

Další informace najdete v tématu Použití IoT Edge zařízení jako brány (Azure IoT Edge 1.2) nebo Azure IoT Edge 1.1.

Pokud používáte testovací certifikáty, před vygenerováním certifikátu podřízeného zařízení zastavte, jak je popsáno v tématu Vytvoření certifikátů podřízených zařízení (Azure IoT Edge 1.2) nebo Azure IoT Edge 1.1.

Krok 3. Otevření portů zařízení brány Azure IoT Edge pro komunikaci

Zařízení brány musí být schopná přijímat zprávy ze svých podřízených zařízení. Aby scénář brány fungoval, musí být alespoň jeden z podporovaných protokolů služby IoT Hub otevřený pro příchozí provoz z podřízených zařízení.

Azure Sphere používá protokol MQTT. Tento protokol používá port 8883.

Další informace najdete v tématu Otevření portů na zařízení brány (Azure IoT Edge 1.2) nebo Azure IoT Edge 1.1.

Po nastavení hraničního zařízení v rychlém startu otevřete port 8883 na virtuálním počítači s Windows:

  1. V případě potřeby se přihlaste ke svému Azure Portal pomocí svého účtu Azure.
  2. Přejděte na virtuální počítač, který jste vytvořili v části Krok 1: Vytvoření zařízení Azure IoT Edge.
  3. V části Nastavení vlevo vyberte Sítě a pak Přidat pravidlo portu pro příchozí spojení.
  4. V okně Přidat pravidlo portu pro příchozí spojení změňte v části Cílové rozsahy portů hodnotu na 8883.
  5. V části Protokol vyberte TCP.
  6. V části Název změňte hodnotu na MQTT.
  7. Všechna ostatní nastavení ponechte jako výchozí a pak vyberte Přidat.

Po nastavení zařízení Azure IoT Edge v tomto rychlém startu otevřete port 8883 na virtuálním počítači s Linuxem:

  1. Spuštěním následujícího příkazu zkontrolujte, jestli je otevřený port pro MQTT:

    sudo netstat -lptu

  2. V případě potřeby otevřete port pomocí následujícího příkazu:

    sudo ufw allow 8883

Tím se definuje příchozí pravidlo zabezpečení, které umožní komunikaci protokolu MQTT s bránou Azure IoT Edge.

Krok 4. Aktualizace názvu hostitele brány

Tento krok používá různé postupy v závislosti na verzi Azure IoT Edge, kterou používáte: Azure IoT Edge 1.2 nebo Azure IoT Edge 1.1.

Azure IoT Edge 1.2: Aktualizace názvu hostitele brány v souboru config.toml

Modul runtime Azure IoT Edge podporuje názvy hostitelů, které jsou kratší než 64 znaků. Fyzické počítače obvykle nemají dlouhé názvy hostitelů, ale pokud jako zařízení Azure IoT Edge používáte virtuální počítač, jako je příklad v rychlém startu, musíte název hostitele nakonfigurovat ručně.

Informace o řešení potíží s neplatným názvem hostitele najdete v běžných řešeních chyb.

Po konfiguraci portu MQTT v rychlém startu nakonfigurujte název hostitele zařízení azure IoT Edge následujícím postupem:

  1. Vyhledejte plně kvalifikovaný název domény (FQDN) pro bránu IoT Edge tak, že přejdete na IoT Edge zařízení (virtuální počítač s Linuxem) na webu Azure Portal a zkopírujete hodnotu názvu DNS ze stránky přehledu.

  2. V případě potřeby se přihlaste k zařízení Azure IoT Edge.

  3. Otevřete soubor config.toml v textovém editoru.

    /etc/aziot/config.toml

  4. Vložte plně kvalifikovaný název domény do části název hostitele souboru config.toml. Ujistěte se, že název je celý malými písmeny.

    hostname: "<iotedge_machinename>.<mydomain>"
    

    Poznámka

    Podle návrhu s Azure IoT Edge v1.2 a novějším musí být název hostitele plně kvalifikovaný název domény (IP adresa už není povolená, jako ve verzi 1.1). Proto je server DNS s příslušným záznamem A ve stejné síti povinný.

  5. iotedge Restartujte proces démon.

    sudo systemctl restart iotedge

  6. Pokud se ve stavu zobrazí chyby (barevný text s předponou [ERROR]), projděte si podrobné informace o chybách v protokolech démona.

    sudo journalctl -u iotedge --no-pager --no-full

  7. Abyste se vyhnuli upozorněním, nastavte konfiguraci DNS pro moduly na zařízení Azure IoT Edge tak, aby zahrnovala konfigurační soubor na adrese /etc/docker/daemon.json, například:

    {
         "dns": ["<IP address of your DNS server>"]
    }
    

Azure IoT Edge 1.1: Aktualizace názvu hostitele brány v souboru config.yaml

Modul runtime Azure IoT Edge podporuje názvy hostitelů, které jsou kratší než 64 znaků. Fyzické počítače obvykle nemají dlouhé názvy hostitelů, ale pokud jako zařízení Azure IoT Edge používáte virtuální počítač, jako je příklad v rychlém startu, musíte název hostitele nakonfigurovat ručně.

Informace o řešení potíží s neplatným názvem hostitele najdete v běžných řešeních chyb.

Po konfiguraci portu MQTT v rychlém startu nakonfigurujte název hostitele zařízení azure IoT Edge následujícím postupem:

  1. V Azure Portal přejděte na virtuální počítač. Zkopírujte hodnotu názvu DNS (plně kvalifikovaný název domény počítače) z části Přehled .

  2. V případě potřeby se přihlaste k zařízení Azure IoT Edge.

  3. Otevřete soubor config.yaml v textovém editoru.

    /etc/iotedge/config.yaml

  4. Vložte plně kvalifikovaný název domény do části název hostitele souboru config.yaml. Ujistěte se, že název je celý malými písmeny.

    `hostname: "<machinename>.<region>.cloudapp.azure.com"`
    

    Poznámka

    Pokud je překladač DNS v síti, možná budete muset použít název holého počítače pro název hostitele (ip adresu nebo skutečný název hostitele), protože Azure Sphere nepodporuje rozhraní netbios.

  5. iotedge Restartujte proces démon.

    sudo systemctl restart iotedge

  6. Pokud se ve stavu zobrazí chyby (barevný text s předponou [ERROR]), projděte si podrobné informace o chybách v protokolech démona.

    sudo journalctl -u iotedge --no-pager --no-full

  7. Abyste se vyhnuli upozorněním, nastavte konfiguraci DNS pro moduly na zařízení Azure IoT Edge tak, aby zahrnovala konfigurační soubor na adrese /etc/docker/daemon.json, například:

    {
        "dns": ["<IP address of your DNS server>"]
    }
    

Krok 5. Nastavení zařízení Azure IoT Edge jako nadřazeného zařízení Azure Sphere

Pokud chcete nastavit zařízení Azure IoT Edge jako nadřazené zařízení Azure Sphere, postupujte takto:

  1. Přejděte na zařízení Azure Sphere, které bylo ručně zřízené výše.
  2. Vyberte ID zařízení.
  3. Vyberte ikonu ozubeného kola v části Žádné nadřazené zařízení.
  4. Vyberte zařízení Azure IoT Edge, které chcete nastavit jako nadřazené.
  5. Vyberte OK a pak Uložit.

Zařízení Azure IoT Edge se teď stane nadřazenou součástí zařízení Azure Sphere.

Krok 6. Poskytněte IoT Edge zařízení katalogové certifikační autority zařízení Azure Sphere.

Pokud chcete ověřit certifikáty zařízení Azure Sphere, musí mít zařízení Azure IoT Edge vlastní kopii certifikační autority katalogu.

  1. Pokud jste to ještě neudělali, stáhněte si certifikát certifikační autority katalogu. Poznámka: Tento krok byste už měli dokončit v rámci konfigurace Azure IoT Hub.

    • Z příkazového řádku se přihlaste pomocí svého přihlašovacího účtu Azure:

      az login
      
    • Stáhněte si certifikát certifikační autority pro katalog Azure Sphere. Tento příkaz stáhne certifikát do souboru CAcertificate.cer v aktuálním pracovním adresáři. Ujistěte se, že jste soubor stáhli do adresáře, ve kterém máte oprávnění k zápisu, jinak se operace stahování nezdaří. Výstupní soubor musí mít příponu .cer.

      az sphere ca-certificate download --resource-group MyResourceGroup --catalog MyCatalog --output-file CACertificate.cer
      
  2. Převeďte certifikát ca katalogu do formátu PEM. Příklady pokynů pro převod formátu na počítači s Windows jsou následující:

    • Vyhledejte cestu k certifikátu v počítači a poklikáním na certifikát otevřete.
    • Otevřete kartu Podrobnosti a vyberte Kopírovat do souboru.
    • V Průvodci exportem certifikátu vyberte Další.
    • Vyberte formát X.509 (CER) s kódováním Base-64 a pak vyberte Další.
    • Zadejte název souboru certifikátu, který chcete exportovat, a pak vyberte Další.
    • Dokončete průvodce výběrem možnosti Dokončit .
    • Přejmenujte stažený soubor certifikátu tak, aby měl příponu .pem.
  3. Připojte certifikát katalogu k kořenovému certifikátu Azure IoT Edge. Nezapomeňte, že certifikáty Azure IoT Edge jste vytvořili v kroku 2.

    • V případě potřeby se přihlaste k zařízení Azure IoT Edge.
    • Vyhledejte cestu k certifikátu kořenové certifikační autority IoT Edge zařízení a otevřete ji v textovém editoru. Pokud jste postupovali podle rychlého startu, pak pomocí skriptů v úložišti Azure IoT Edge Git vytvořili ukázkové certifikáty, certifikát kořenové certifikační autority má název azure-iot-test-only.root.ca.cert.pem.
    • Otevřete certifikát ca katalogu Azure Sphere (ve formátu PEM) v textovém editoru. Zkopírujte obsah a vložte ho na konec certifikátu IoT Edge kořenové certifikační autority.
    • Uložte změny provedené v certifikátu kořenové certifikační autority Azure IoT Edge a pak soubor zavřete.
    • Restartujte zařízení Azure IoT Edge. Pro linuxové zařízení Azure IoT Edge spusťte: sudo systemctl restart iotedge.
    • Ověřte, že moduly běží na zařízení Azure IoT Edge. Pro linuxové zařízení Azure IoT Edge spusťte: sudo iotedge list.

Krok 7. Poskytnutí certifikátu kořenové certifikační autority zařízení Azure IoT Edge zařízení Azure Sphere

Pokud chcete ověřit certifikáty zařízení Azure IoT Edge, musí mít zařízení Azure Sphere (podřízené zařízení) vlastní kopii certifikátu kořenové certifikační autority zařízení Azure IoT Edge, kterou jste nakonfigurovali v kroku 2.

Další informace najdete v tématu Připojení podřízeného zařízení k bráně Azure IoT Edge.

  1. Vyhledejte původní kořenový certifikát zařízení azure IoT Edge.

    • Nezapomeňte, že původní kořenový certifikát zařízení Azure IoT Edge je ten, který jste vytvořili v kroku 2.
    • Pokud jste postupovali podle rychlého startu a pak jste k vytvoření ukázkových certifikátů použili skripty poskytnuté v úložišti IoT Edge Git, certifikát kořenové certifikační autority se nazývá azure-iot-test-only.root.ca.cert.pem.
  2. Zkopírujte kořenový certifikát Azure IoT Edge do zařízení Azure Sphere tak, že ho přidáte do balíčku aplikace.

Krok 8. Zkopírování kořenového certifikátu IoT na vzdálený počítač

Pokud chcete zkopírovat kořenový certifikát Azure IoT Edge na vzdálený virtuální počítač s Linuxem nebo na místní počítač s Windows, postupujte následovně:

  • K přenosu souborů můžete nainstalovat nástroj WinSCP . Nástroj poskytuje grafické uživatelské rozhraní, takže je jednodušší ho používat než přístup z příkazového řádku.

  • Pokud chcete použít příkazový řádek, použijte nástroj příkazového řádku SCP (Secure Copy).

  • Pokud chcete přenést soubor z místního počítače s Windows na vzdálený virtuální počítač s Linuxem, spusťte v Windows PowerShell následující příkaz:

    powershell -Command scp -r <path-to-file-name> <userName@remote-ip>:<path-to-destination-directory>
    

    Ukázková syntaxe:

    scp C:\Documents\cert.pem AzureUser@edgevmname-west.westus22.cloudapp.azure.com:/home/azureUser/test/

  • Pokud chcete přenést soubor ze vzdáleného virtuálního počítače s Linuxem do místního počítače s Windows, spusťte v Windows PowerShell následující příkaz:

    powershell -Command scp -r <userName@remote-ip>:<path-to-file-name> <path-to-destination-dir>
    

    Ukázková syntaxe:

    scp azureUser@edgevmname-west.westus22.cloudapp.azure.com:/home/azureUser/test/cert.pem C:\Documents\

Řešení potíží

Pokud máte problémy se spuštěním Azure IoT Edge ve vašem prostředí, použijte k řešení potíží a diagnostice tyto články:

Další kroky

  • Po dokončení kroků v tomto tématu můžete spustit ukázku Azure IoT podle pokynů pro připojení pomocí Azure IoT Edge.