Azure IoT Edge instellen voor Azure Sphere
Azure IoT Edge biedt een filter- en gegevensverwerkingslaag tussen een downstreamapparaat, zoals Azure Sphere en Azure IoT Hub. Overweeg het gebruik van Azure IoT Edge als uw Azure Sphere-apparaat een aanzienlijke hoeveelheid gegevens produceert of gegevens die na verwerking moeten worden verwerkt.
In dit onderwerp worden de stappen beschreven voor het instellen van een Azure IoT Edge-apparaat met Azure Sphere. Azure Sphere ondersteunt beide versies 1.1 en 1.2 van Azure IoT Edge. In de instructies worden aanzienlijke verschillen vermeld. De belangrijkste verschillen zijn:
- De pakketnaam is gewijzigd van
iotedge
inaziot-edge
. - Het standaardconfiguratiebestand heeft een nieuwe naam en locatie. In Azure IoT Edge 1.1 was het configuratiebestand /etc/iotedge/config.yaml. In Azure IoT Edge 1.2 is het configuratiebestand /etc/aziot/config.toml.
- Voor Azure IoT Edge 1.2 is een FQDN (Fully Qualified Domain Name) vereist die toegankelijk is via een DNS-server in het netwerk.
Nadat u de taken in dit onderwerp hebt voltooid, wordt uw Azure Sphere-apparaat geconfigureerd om gegevens te verzenden naar een Azure IoT Hub via een Azure IoT Edge-apparaat dat fungeert als een transparante gateway. U kunt extra gegevens filteren en verwerken met een module op het Azure IoT Edge-apparaat door de Azure IoT Edge-modulehandleiding te volgen.
Voordat u begint
Bij de stappen in dit onderwerp wordt ervan uitgegaan dat:
- Uw Azure Sphere-apparaat is via USB verbonden met uw pc.
- U hebt een Azure-abonnement.
- U hebt een Azure IoT Hub exemplaar gemaakt en handmatig een apparaat ingericht. Houd er rekening mee dat u het CA-certificaat van de catalogus moet gebruiken voor de IoT Hub verderop in de procedure (stap 6).
- U hebt een resourcegroep gemaakt en alle resources met betrekking tot de Azure IoT Hub- en IoT Edge-services moeten deel uitmaken van deze resourcegroep.
Belangrijk
Hoewel u gratis een Azure-abonnement kunt maken, moet u voor het registratieproces een creditcardnummer invoeren. Azure biedt verschillende abonnementsserviceniveaus. Standaard wordt de standard-laag, waarvoor maandelijkse servicekosten zijn vereist, geselecteerd wanneer u een Azure IoT Hub-exemplaar maakt. Als u maandelijkse kosten wilt voorkomen, selecteert u de gratis laag. De gratis laag bevat de services die nodig zijn voor het gebruik van uw apparaat met een Azure IoT Hub-instantie, waaronder de Device Twin. Als u geen Azure-abonnement hebt, maakt u een gratis account aan voordat u begint.
Overzicht
Het instellen van een Azure IoT Edge-apparaat en het configureren voor gebruik met een Azure Sphere-apparaat vereist een proces met meerdere stappen. U moet ongeveer 8 uur plannen om de stappen te doorlopen, met name als u niet bekend bent met Azure IoT Edge. Als dit de eerste keer is dat u met Azure IoT Edge werkt, volgt u de quickstart-instructies in elke sectie om een IoT Edge apparaat in te stellen en te configureren dat wordt uitgevoerd op een virtuele Linux-machine.
Deze stappen moeten slechts eenmaal worden uitgevoerd per Azure Sphere-catalogus en Azure IoT Edge-apparaat. Elk Azure Sphere-apparaat moet echter handmatig worden geconfigureerd in Azure IoT Hub en het Azure IoT Edge-apparaat moet worden ingesteld als de bovenliggende versie van het Azure Sphere-apparaat.
Installatiestappen kunnen worden onderverdeeld in drie logische groeperingen:
Het IoT Edge apparaat maken en configureren als een transparante gateway
- Stap 1. Een Azure IoT Edge-apparaat maken.
- Stap 2. Configureer het Azure IoT Edge-gatewayapparaat als een server.
- Stap 3. Open azure IoT Edge gatewayapparaatpoorten voor communicatie.
- Stap 4. Werk de hostnaam van de gateway bij in config.toml (Azure IoT Edge versie 1.2) of config.yaml (Azure IoT Edge versie 1.1).
Het Azure Sphere-apparaat configureren in Azure IoT Hub
- Stap 5. Stel het Azure IoT Edge-apparaat in als bovenliggend apparaat van het Azure Sphere-apparaat.
Een vertrouwde verbinding tot stand brengen tussen het Azure Sphere-apparaat en het IoT Edge-apparaat
- Stap 6. Geef het CA-certificaat van de catalogus van het Azure Sphere-apparaat op bij het Azure IoT Edge-apparaat.
- Stap 7. Geef het basis-CA-certificaat van Azure IoT Edge-apparaat op bij het Azure Sphere-apparaat.
Stap 1. Een Azure IoT Edge-apparaat maken
Als u dit nog niet hebt gedaan, moet u een Azure IoT Edge-apparaat instellen en dit registreren bij Azure IoT Hub.
U kunt de Device Provisioning Service (DPS) gebruiken om het Azure IoT Edge-apparaat in te richten. U kunt DPS echter niet gebruiken om het Azure Sphere-apparaat in te richten. Het automatisch inrichten van apparaten downstream van het Azure IoT Edge-apparaat met de Azure IoT Hub DPS wordt niet ondersteund.
U kunt de stappen in de snelstartgids voor IoT Edge volgen om een Azure IoT Edge-apparaat in te stellen dat wordt uitgevoerd op een Virtuele Linux- of Windows-apparaat en dit te registreren bij Azure IoT Hub.
Gebruik de stappen in de quickstart om het volgende te doen:
- Registreer een Azure IoT Edge-apparaat bij uw Azure IoT Hub-exemplaar. Maak in deze stap geen nieuwe IoT-hub, maar registreer uw Azure IoT Edge-apparaat bij de IoT-hub die u al hebt gemaakt.
- Installeer en start de Azure IoT Edge runtime op uw Azure IoT Edge-apparaat.
Opmerking
Stop in de quickstart IoT Edge voordat u een module implementeert.
Stap 2. Het IoT Edge-gatewayapparaat configureren als een server
Volg de instructies voor Een Azure IoT Edge-apparaat configureren om te fungeren als een transparante gateway (Azure IoT Edge 1.2) of Azure IoT Edge 1.1, maar stop wanneer u de sectie Open poorten op gatewayapparaat bereikt. Hoewel u in deze instructies wordt uitgelegd dat u de certificaatbestanden naar uw IoT Edge apparaat moet kopiëren, kopieert u de bestanden pas naar uw VM tot stap 8 van deze procedure.
Als onderdeel van de stappen die u hebt voltooid om de apparaatgateway als server te configureren, hebt u al het volgende gedaan:
- De Azure IoT Edge-apparaatcertificaten geconfigureerd.
- De Azure IoT Edge hub-module geïmplementeerd.
- Geconfigureerde routering van berichten via de Azure IoT Edge.
Als onderdeel van deze stappen hebt u ook deze certificaten gemaakt:
- Basis-CA-certificaat:
certs/azure-iot-test-only.root.ca.cert.pem
- Ca-certificaat van apparaat en persoonlijke sleutel (wordt gebruikt om het IoT Edge apparaat te registreren bij de IoT Hub):
certs/iot-edge-device-identity-<cert-name>-full-chain.cert.pem
private/iot-edge-device-identity-<cert-name>.key.pem
- IoT Edge CA-certificaat en persoonlijke sleutel (te kopiëren naar een IoT Edge apparaat en waarnaar wordt verwezen in het configuratiebestand):
certs/iot-edge-device-ca-<cert-name>-full-chain.cert.pem
private/iot-edge-device-ca-<cert-name>.key.pem
Als u de quickstart volgt, gebruikt u de Linux-instructies voor het configureren van de democertificaten als de computer waarop u de certificaten genereert een Linux-computer is. Gebruik de Windows-instructies om de democertificaten te genereren als de computer waarop u de certificaten genereert een Windows-computer is. Zie de sectie voor het kopiëren van basiscertificaten naar een Linux-VM of naar een lokale Windows-computer.
Het Azure IoT Edge basis-CA-certificaat wordt gewijzigd in stap 7, maar u hebt het oorspronkelijke certificaat in stap 8 nodig. Bewaar een kopie van het oorspronkelijke certificaat zodat u het opnieuw kunt gebruiken.
Opmerking
Wanneer u de sectie certificaten van het bestand config.toml (Azure IoT Edge 1.2) of config.yaml (Azure IoT Edge 1.1) bijwerkt, moet u ervoor zorgen dat de certificates:
regel in het bestand config.toml (Azure IoT Edge 1.2) of config.yaml (Azure IoT Edge 1.1) geen voorafgaande witruimte heeft en dat elk van de geneste certificaten is ingesprongen door twee spaties.
Nadat u het bestand hebt bijgewerkt, controleert u of de edgehub-module wordt uitgevoerd op uw Azure IoT Edge-apparaat:
sudo iotedge list
Zie Hoe een IoT Edge-apparaat kan worden gebruikt als gateway (Azure IoT Edge 1.2) of Azure IoT Edge 1.1 voor meer informatie.
Als u testcertificaten gebruikt, stopt u voordat u het downstreamapparaatcertificaat genereert, zoals wordt beschreven in Downstreamapparaatcertificaten maken (Azure IoT Edge 1.2) of Azure IoT Edge 1.1.
Stap 3. Azure IoT Edge gatewayapparaatpoorten openen voor communicatie
Gateway-apparaten moeten berichten kunnen ontvangen van hun downstreamapparaten. Een gatewayscenario werkt alleen als ten minste één van de ondersteunde protocollen van de IoT-hub is geopend voor binnenkomend verkeer van downstreamapparaten.
Azure Sphere maakt gebruik van protocol MQTT. Dit protocol maakt gebruik van poort 8883.
Zie Poorten openen op gatewayapparaat (Azure IoT Edge 1.2) of Azure IoT Edge 1.1 voor meer informatie.
Volg deze stappen om poort 8883 te openen op een Windows-VM nadat u een Edge-apparaat hebt ingesteld in de quickstart:
- Meld u zo nodig aan bij uw Azure Portal met uw Azure-account.
- Navigeer naar de virtuele machine die u hebt gemaakt in de sectie Stap 1: Een Azure IoT Edge-apparaat maken.
- Selecteer in de sectie Instellingen links de optie Netwerken en vervolgens Regel voor binnenkomende poort toevoegen.
- Wijzig op de blade Regel voor binnenkomende poort toevoegen onder Doelpoortbereiken de waarde in 8883.
- Selecteer tcp onder Protocol.
- Wijzig onder Naam de waarde in MQTT.
- Laat alle andere instellingen als standaardinstelling staan en selecteer vervolgens Toevoegen.
Volg deze stappen om poort 8883 te openen op een Linux-VM nadat u een Azure IoT Edge-apparaat hebt ingesteld in de quickstart:
Voer de volgende opdracht uit om te controleren of de poort voor MQTT is geopend:
sudo netstat -lptu
Gebruik indien nodig de volgende opdracht om de poort te openen:
sudo ufw allow 8883
Hiermee wordt een binnenkomende beveiligingsregel gedefinieerd om communicatie voor het MQTT-protocol met de Azure IoT Edge Gateway toe te staan.
Stap 4. De hostnaam van de gateway bijwerken
In deze stap worden verschillende procedures gebruikt, afhankelijk van de versie van Azure IoT Edge u gebruikt: Azure IoT Edge 1.2 of Azure IoT Edge 1.1.
Azure IoT Edge 1.2: de hostnaam van de gateway in config.toml bijwerken
De Azure IoT Edge-runtime ondersteunt hostnamen die minder dan 64 tekens bevatten. Fysieke machines hebben meestal geen lange hostnamen, maar als u een virtuele machine gebruikt als azure-IoT Edge-apparaat, zoals in het voorbeeld in de quickstart, moet u de hostnaam handmatig configureren.
Zie Veelvoorkomende foutresoluties om problemen met een ongeldige hostnaam op te lossen.
Volg deze stappen om de hostnaam van het Azure IoT Edge-apparaat te configureren na het configureren van de MQTT-poort in de quickstart:
Zoek de FQDN (Fully Qualified Domain Name) voor uw IoT Edge gateway door te navigeren naar uw IoT Edge-apparaat (Linux-VM) in Azure Portal en de waarde voor DNS-naam van de overzichtspagina te kopiëren.
Meld u zo nodig aan bij het Azure IoT Edge-apparaat.
Open het bestand config.toml in een teksteditor.
/etc/aziot/config.toml
Plak de FQDN in de sectie hostnaam van config.toml. Zorg ervoor dat de naam alleen kleine letters bevat.
hostname: "<iotedge_machinename>.<mydomain>"
Opmerking
In combinatie met Azure IoT Edge v1.2 en hoger moet hostnaam een FQDN-naam zijn (een IP-adres is niet meer toegestaan, zoals in v1.1). Daarom is een DNS-server met de juiste A-record op hetzelfde netwerk verplicht.
Start de
iotedge
daemon opnieuw.sudo systemctl restart iotedge
Als u fouten ziet (gekleurde tekst met het voorvoegsel [ERROR]) in de status, bekijkt u daemonlogboeken voor gedetailleerde foutinformatie.
sudo journalctl -u iotedge --no-pager --no-full
Om waarschuwingen te voorkomen, stelt u de DNS-configuratie in voor modules op het Azure IoT Edge-apparaat om een configuratiebestand op te nemen op /etc/docker/daemon.json, bijvoorbeeld:
{ "dns": ["<IP address of your DNS server>"] }
Azure IoT Edge 1.1: de hostnaam van de gateway in config.yaml bijwerken
De Azure IoT Edge-runtime ondersteunt hostnamen die minder dan 64 tekens bevatten. Fysieke machines hebben meestal geen lange hostnamen, maar als u een virtuele machine gebruikt als azure-IoT Edge-apparaat, zoals in het voorbeeld in de quickstart, moet u de hostnaam handmatig configureren.
Zie Veelvoorkomende foutresoluties om problemen met een ongeldige hostnaam op te lossen.
Volg deze stappen om de hostnaam van het Azure IoT Edge-apparaat te configureren na het configureren van de MQTT-poort in de quickstart:
Navigeer in de Azure Portal naar uw virtuele machine. Kopieer de waarde voor DNS-naam (FQDN van de machine) uit de sectie Overzicht .
Meld u zo nodig aan bij het Azure IoT Edge-apparaat.
Open het bestand config.yaml in een teksteditor.
/etc/iotedge/config.yaml
Plak de FQDN in de sectie hostnaam van config.yaml. Zorg ervoor dat de naam alleen kleine letters bevat.
`hostname: "<machinename>.<region>.cloudapp.azure.com"`
Opmerking
Mogelijk moet u de naam van de bare machine gebruiken voor de hostnaam (het IP-adres of de werkelijke hostnaam) als een DNS-resolver zich in het netwerk bevindt, omdat Azure Sphere netbios niet ondersteunt.
Start de
iotedge
daemon opnieuw.sudo systemctl restart iotedge
Als u fouten ziet (gekleurde tekst met het voorvoegsel [ERROR]) in de status, bekijkt u daemonlogboeken voor gedetailleerde foutinformatie.
sudo journalctl -u iotedge --no-pager --no-full
Om waarschuwingen te voorkomen, stelt u de DNS-configuratie in voor modules op het Azure IoT Edge-apparaat om een configuratiebestand op te nemen op /etc/docker/daemon.json, bijvoorbeeld:
{ "dns": ["<IP address of your DNS server>"] }
Stap 5. Het Azure IoT Edge-apparaat instellen als bovenliggend apparaat van het Azure Sphere-apparaat
Volg deze stappen om het Azure IoT Edge-apparaat in te stellen als het bovenliggende apparaat van het Azure Sphere-apparaat:
- Navigeer naar het Azure Sphere-apparaat dat hierboven handmatig is ingericht.
- Selecteer Apparaat-id.
- Selecteer het tandwielpictogram onder Geen bovenliggend apparaat.
- Selecteer het Azure IoT Edge-apparaat dat u als bovenliggend apparaat wilt instellen.
- Selecteer OK en vervolgens Opslaan.
Het Azure IoT Edge-apparaat wordt nu het bovenliggende apparaat van het Azure Sphere-apparaat.
Stap 6. Geef het CA-certificaat van de catalogus van het Azure Sphere-apparaat op bij het IoT Edge-apparaat
Als u Azure Sphere-apparaatcertificaten wilt controleren, moet het Azure IoT Edge-apparaat een eigen kopie van de catalogus-CA hebben.
Download het CA-certificaat van de catalogus als u dit nog niet hebt gedaan. Opmerking: U moet dit al hebben voltooid als onderdeel van het configureren van uw Azure IoT Hub.
Meld u vanaf de opdrachtprompt aan met uw Azure-aanmelding:
az login
Download het CA-certificaat voor uw Azure Sphere-catalogus. Met deze opdracht downloadt u het certificaat naar een bestand met de naam CAcertificate.cer in de huidige werkmap. Zorg ervoor dat u het bestand downloadt naar een map waarin u schrijfmachtigingen hebt, anders mislukt de downloadbewerking. Het uitvoerbestand moet de extensie .cer hebben.
az sphere ca-certificate download --resource-group MyResourceGroup --catalog MyCatalog --output-file CACertificate.cer
Converteer het CA-certificaat van de catalogus naar PEM-indeling. Voorbeeldinstructies voor het converteren van de indeling op een Windows-computer zijn als volgt:
- Zoek het pad van het certificaat op uw computer en dubbelklik op het certificaat om het te openen.
- Open het tabblad Details en selecteer Kopiëren naar bestand.
- Selecteer Volgende in de wizard Certificaat exporteren.
- Selecteer de met Base-64 gecodeerde X.509-indeling (CER) en selecteer vervolgens Volgende.
- Voer de bestandsnaam in voor het certificaat dat u wilt exporteren en selecteer vervolgens Volgende.
- Selecteer Voltooien om de wizard te voltooien.
- Wijzig de naam van het gedownloade certificaatbestand met de bestandsextensie .pem.
Voeg het cataloguscertificaat toe aan het Azure IoT Edge-basiscertificaat. Vergeet niet dat u de Azure IoT Edge-certificaten hebt gemaakt in stap 2.
- Meld u zo nodig aan bij het Azure IoT Edge-apparaat.
- Zoek het pad naar het basis-CA-certificaat van IoT Edge apparaat en open het in een teksteditor. Als u de quickstart hebt gevolgd en vervolgens de scripts in de Git-opslagplaats van Azure IoT Edge hebt gebruikt om democertificaten te maken, heeft het basis-CA-certificaat de naam azure-iot-test-only.root.ca.cert.pem.
- Open het CA-certificaat van de Azure Sphere-catalogus (in PEM-indeling) in een teksteditor. Kopieer de inhoud en plak deze aan het einde van het IoT Edge basis-CA-certificaat.
- Sla de wijzigingen op die zijn aangebracht in het Azure IoT Edge basis-CA-certificaat en sluit het bestand.
- Start het Azure IoT Edge-apparaat opnieuw op. Voer voor een Linux Azure IoT Edge-apparaat het volgende uit:
sudo systemctl restart iotedge
. - Controleer of de modules worden uitgevoerd op uw Azure IoT Edge-apparaat. Voer voor een Linux Azure IoT Edge-apparaat het volgende uit:
sudo iotedge list
.
Stap 7. Geef het basis-CA-certificaat van Azure IoT Edge-apparaat op bij het Azure Sphere-apparaat
Als u de Azure IoT Edge-apparaatcertificaten wilt controleren, moet het Azure Sphere-apparaat (het downstreamapparaat) een eigen kopie hebben van het basis-CA-certificaat van het Azure IoT Edge-apparaat, dat u in stap 2 hebt geconfigureerd.
Zie Een downstreamapparaat verbinden met een Azure IoT Edge-gateway voor meer informatie.
Zoek het oorspronkelijke basiscertificaat van het Azure IoT Edge-apparaat.
- Vergeet niet dat het oorspronkelijke Azure IoT Edge-apparaathoofdcertificaat het basiscertificaat is dat u in stap 2 hebt gemaakt.
- Als u de quickstart hebt gevolgd en vervolgens de scripts in de IoT Edge git-opslagplaats hebt gebruikt om democertificaten te maken, heet het basis-CA-certificaat azure-iot-test-only.root.ca.cert.pem.
Kopieer het Azure IoT Edge-basiscertificaat naar het Azure Sphere-apparaat door het toe te voegen aan het toepassingspakket.
- Zie Installatiekopieënpakket maken voor gedetailleerde stappen.
- Zie de sectie voor het kopiëren van basiscertificaten naar een Linux-VM of naar een lokale Windows-computer.
Stap 8. Het IoT-basiscertificaat kopiëren naar een externe computer
Volg deze stappen om het Azure IoT Edge-basiscertificaat te kopiëren naar een externe Linux-VM of naar een lokale Windows-computer:
U kunt het hulpprogramma WinSCP installeren om de bestanden over te dragen. Het hulpprogramma biedt een GUI, zodat deze eenvoudiger te gebruiken is dan een opdrachtregelbenadering.
Als u de opdrachtregel wilt gebruiken, gebruikt u het opdrachtregelprogramma SCP (Secure Copy).
Als u een bestand wilt overdragen van een lokale Windows-computer naar een externe Linux-VM, voert u de volgende opdracht uit in Windows PowerShell:
powershell -Command scp -r <path-to-file-name> <userName@remote-ip>:<path-to-destination-directory>
Voorbeeldsyntaxis:
scp C:\Documents\cert.pem AzureUser@edgevmname-west.westus22.cloudapp.azure.com:/home/azureUser/test/
Als u een bestand wilt overdragen van een externe Linux-VM naar een lokale Windows-computer, voert u de volgende opdracht uit in Windows PowerShell:
powershell -Command scp -r <userName@remote-ip>:<path-to-file-name> <path-to-destination-dir>
Voorbeeldsyntaxis:
scp azureUser@edgevmname-west.westus22.cloudapp.azure.com:/home/azureUser/test/cert.pem C:\Documents\
Probleemoplossing
Als u problemen ondervindt bij het uitvoeren van Azure IoT Edge in uw omgeving, gebruikt u deze artikelen voor probleemoplossing en diagnostische gegevens:
Problemen met uw IoT Edge-apparaat (Azure IoT Edge 1.2) of Azure IoT Edge 1.1 oplossen
Veelvoorkomende problemen en oplossingen voor Azure IoT Edge (Azure IoT Edge 1.2) of Azure IoT Edge 1.1
Volgende stappen
- Nadat u de stappen in dit onderwerp hebt voltooid, kunt u het Azure IoT-voorbeeld uitvoeren en de instructies volgen voor het maken van verbinding met behulp van Azure IoT Edge.