Quickstart: Uw eerste IoT Edge-module implementeren op een virtueel Linux-apparaat
Van toepassing op: IoT Edge 1.5 IoT Edge 1.4
Belangrijk
IoT Edge 1.5 LTS en IoT Edge 1.4 LTS worden ondersteund releases. IoT Edge 1.4 LTS eindigt op 12 november 2024. Raadpleeg IoT Edge bijwerken als u een eerdere versie hebt.
Probeer Azure IoT Edge uit in deze quickstart door containercode te implementeren op een virtueel Linux IoT Edge-apparaat. Met IoT Edge kunt u code op uw apparaten op afstand beheren zodat u meer van uw workloads naar de rand kunt verzenden. Voor deze quickstart raden we u aan een virtuele Azure-machine te gebruiken voor uw IoT Edge-apparaat, waarmee u snel een testmachine kunt maken en deze vervolgens kunt verwijderen wanneer u klaar bent.
In deze snelstart leert u de volgende zaken:
- Een IoT Hub maken.
- Een IoT Edge-apparaat registreren in uw IoT-hub.
- Installeer en start de IoT Edge-runtime op een virtueel apparaat.
- Op afstand een module implementeren op een IoT Edge-apparaat.
In deze quickstart leert u hoe u een virtuele Linux-machine maakt die is geconfigureerd als een IoT Edge-apparaat. Vervolgens implementeert u een module vanuit Azure Portal op uw apparaat. De module die in deze quickstart wordt gebruikt, is een gesimuleerde sensor waarmee temperatuur-, luchtvochtigheids- en drukgegevens worden gegenereerd. De andere Azure IoT Edge-zelfstudies bouwen voort op het werk dat u hier doet door aanvullende modules te implementeren waarmee de gesimuleerde gegevens worden geanalyseerd voor zakelijke inzichten.
Als u nog geen actief abonnement op Azure hebt, maakt u een gratis Azure-account aan voordat u begint.
Vereisten
Bereid uw omgeving voor op Azure CLI.
Gebruik de Bash-omgeving in Azure Cloud Shell. Zie quickstart voor Bash in Azure Cloud Shell voor meer informatie.
Installeer de Azure CLI, indien gewenst, om CLI-referentieopdrachten uit te voeren. Als u in Windows of macOS werkt, kunt u Azure CLI uitvoeren in een Docker-container. Zie De Azure CLI uitvoeren in een Docker-container voor meer informatie.
Als u een lokale installatie gebruikt, meldt u zich aan bij Azure CLI met behulp van de opdracht az login. Volg de stappen die worden weergegeven in de terminal, om het verificatieproces te voltooien. Raadpleeg Aanmelden bij Azure CLI voor aanvullende aanmeldingsopties.
Installeer de Azure CLI-extensie bij het eerste gebruik, wanneer u hierom wordt gevraagd. Raadpleeg Extensies gebruiken met Azure CLI voor meer informatie over extensies.
Voer az version uit om de geïnstalleerde versie en afhankelijke bibliotheken te vinden. Voer az upgrade uit om te upgraden naar de nieuwste versie.
Cloudresources:
Een resourcegroep voor het beheren van alle resources die u in deze snelstart maakt. We gebruiken de voorbeeldnaam van de resourcegroep IoTEdgeResources in deze quickstart en de volgende zelfstudies.
az group create --name IoTEdgeResources --location westus2
Een IoT Hub maken
Begin met de snelstart door een IoT Hub met Azure CLI te maken.
Het gratis niveau van IoT Hub werkt voor deze snelstart. Als u in het verleden IoT Hub hebt gebruikt en al een hub hebt gemaakt, kunt u die IoT-hub gebruiken.
Met de volgende code wordt een gratis F1-hub gemaakt in de resourcegroep IoTEdgeResources. Vervang {hub_name}
door een unieke naam voor uw IoT-hub. Het kan enkele minuten duren voordat een IoT-hub is gemaakt.
az iot hub create --resource-group IoTEdgeResources --name {hub_name} --sku F1 --partition-count 2
Als er een fout optreedt omdat er al één gratis hub in uw abonnement is, wijzigt u de SKU in S1. Elk abonnement biedt toegang tot slechts één gratis IoT-hub. Als u het foutbericht ontvangt dat de naam van de IoT Hub niet beschikbaar is, betekent dit dat iemand anders al een hub met die naam heeft. Probeer een andere naam.
Een IoT Edge-apparaat registreren.
Registreer een IoT Edge-apparaat bij uw net gemaakte IoT Hub.
Maak een apparaat-id voor uw IoT Edge-apparaat, zodat het met uw IoT Hub kan communiceren. De apparaat-id is opgeslagen in de cloud, en u gebruikt een unieke apparaatverbindingsreeks om een fysiek apparaat te koppelen aan een apparaat-id.
Omdat IoT Edge-apparaten zich anders gedragen en anders kunnen worden beheerd dan gewone IoT-apparaten, declareert u deze identiteit met een --edge-enabled
-vlag als een identiteit van een IoT Edge-apparaat.
Voer in Azure Cloud Shell de volgende opdracht in om een apparaat met de naam myEdgeDevice in uw hub te maken.
az iot hub device-identity create --device-id myEdgeDevice --edge-enabled --hub-name {hub_name}
Als u een foutmelding krijgt over iothubowner-beleidssleutels, controleert u of in Cloud Shell de nieuwste versie van de azure-iot-extensie wordt uitgevoerd.
Bekijk de verbindingsreeks voor uw apparaat. Hiermee wordt uw fysieke apparaat aan de bijbehorende identiteit in IoT Hub gekoppeld. De verbindingsreeks bevat de naam van uw IoT-hub, de naam van uw apparaat en vervolgens een gedeelde sleutel waarmee verbindingen tussen de twee worden geverifieerd. Deze verbindingsreeks wordt in de volgende sectie opnieuw gebruikt om uw IoT Edge-apparaat in te stellen.
az iot hub device-identity connection-string show --device-id myEdgeDevice --hub-name {hub_name}
Uw verbindingsreeks ziet er bijvoorbeeld ongeveer als volgt uit
HostName=contoso-hub.azure-devices.net;DeviceId=myEdgeDevice;SharedAccessKey=<DEVICE_SHARED_ACCESS_KEY>
.
Een IoT Edge-apparaat configureren
Maak een virtuele machine met de Azure IoT Edge-runtime.
De IoT Edge-runtime wordt op alle IoT Edge-apparaten geïmplementeerd. Deze bevat drie onderdelen. De IoT Edge-beveiligingsdaemon wordt telkens gestart wanneer een IoT Edge-apparaat wordt opgestart en start het apparaat op door de IoT Edge-agent te starten. De IoT Edge-agent faciliteert de implementatie en bewaking van modules op het IoT Edge-apparaat, inclusief de IoT Edge-hub. Met de IoT Edge-hub wordt de communicatie tussen modules op het IoT Edge-apparaat en tussen het apparaat en IoT Hub beheerd.
Tijdens de installatie van de runtime geeft u een apparaatverbindingsreeks op. Dit is de tekenreeks die u hebt opgehaald via de Azure CLI. Deze tekenreeks koppelt uw fysieke apparaat aan de IoT Edge-apparaat-id in Azure.
Het IoT Edge-apparaat implementeren
In deze sectie wordt een Azure Resource Manager-sjabloon gebruikt om een nieuwe virtuele machine te maken en de IoT Edge-runtime hierop te installeren. Als u in plaats daarvan uw eigen Linux-apparaat wilt gebruiken, kunt u de installatiestappen volgen in Het handmatig inrichten van één Linux IoT Edge-apparaat en vervolgens terugkeren naar deze quickstart.
Gebruik de knop Implementeren in Azure of de CLI-opdrachten om uw IoT Edge-apparaat te maken op basis van de vooraf gedefinieerde iotedge-vm-deploy-sjabloon .
Implementeren met behulp van de Azure Resource Manager-sjabloon van IoT Edge.
Bash- of Cloud Shell-gebruikers kunnen de volgende opdracht naar een teksteditor kopiëren, de tekst van de tijdelijke aanduiding vervangen door hun eigen informatie en de tijdelijke aanduiding kopiëren naar het Bash- of Cloud Shell-venster:
az deployment group create \ --resource-group IoTEdgeResources \ --template-uri "https://raw.githubusercontent.com/Azure/iotedge-vm-deploy/main/edgeDeploy.json" \ --parameters dnsLabelPrefix='<REPLACE_WITH_VM_NAME>' \ --parameters adminUsername='azureUser' \ --parameters deviceConnectionString=$(az iot hub device-identity connection-string show --device-id myEdgeDevice --hub-name <REPLACE_WITH_HUB_NAME> -o tsv) \ --parameters authenticationType='password' \ --parameters adminPasswordOrKey="<REPLACE_WITH_PASSWORD>"
PowerShell-gebruiken kunnen de volgende opdracht naar hun PowerShell-venster kopiëren en vervolgens de tekst van de tijdelijke aanduiding vervangen door uw eigen informatie:
az deployment group create ` --resource-group IoTEdgeResources ` --template-uri "https://raw.githubusercontent.com/Azure/iotedge-vm-deploy/main/edgeDeploy.json" ` --parameters dnsLabelPrefix='<REPLACE_WITH_VM_NAME>' ` --parameters adminUsername='azureUser' ` --parameters deviceConnectionString=$(az iot hub device-identity connection-string show --device-id myEdgeDevice --hub-name <REPLACE_WITH_HUB_NAME> -o tsv) ` --parameters authenticationType='password' ` --parameters adminPasswordOrKey="<REPLACE_WITH_PASSWORD>"
Voor deze sjabloon worden de volgende parameters gebruikt:
Parameter | Description |
---|---|
resource-group | De resourcegroep waarin de resources worden gemaakt. Gebruik de standaardinstelling IoTEdgeResources die in dit artikel is gebruikt of geef de naam op van een bestaande resourcegroep in uw abonnement. |
template-uri | Een verwijzing naar de Resource Manager-sjabloon die we gebruiken. |
dnsLabelPrefix | Een tekenreeks die wordt gebruikt om de hostnaam van de virtuele machine te maken. Vervang de tijdelijke aanduiding voor tekst door een naam voor uw virtuele machine. |
adminUsername | Een gebruikersnaam voor het beheerdersaccount van de virtuele machine. Gebruik het voorbeeld azureUser of geef een nieuwe gebruikersnaam op. |
deviceConnectionString | De verbindingsreeks van de apparaat-id in IoT Hub, die wordt gebruikt om de IoT Edge-runtime op de virtuele machine te configureren. De CLI-opdracht in deze parameter haalt de verbindingsreeks voor u op. Vervang de tekst van de tijdelijke aanduiding door de naam van uw IoT-hub. |
authenticationType | De verificatiemethode voor het beheerdersaccount. Deze quickstart maakt gebruik van wachtwoordverificatie, maar u kunt deze parameter ook instellen op sshPublicKey. |
adminPasswordOrKey | Het wachtwoord of de waarde voor de SSH-sleutel voor het beheerdersaccount. Vervang de tekst van de tijdelijke aanduiding door een veilig wachtwoord. Uw wachtwoord moet ten minste 12 tekens lang zijn en drie van de volgende vier typen tekens bevatten: kleine letters, hoofdletters, cijfers en speciale tekens. |
Zodra de implementatie is voltooid, ontvangt u de uitvoer met JSON-indeling in de CLI die de SSH-gegevens bevat om verbinding te maken met de virtuele machine. Kopieer de waarde van de openbare SSH-vermelding van de uitvoersectie. Uw SSH-opdracht moet er bijvoorbeeld ongeveer als ssh azureUser@edge-vm.westus2.cloudapp.azure.com
volgt uitzien.
De IoT Edge runtime-status bekijken
De overige opdrachten in deze snelstart worden toegepast op uw IoT Edge-apparaat zelf, zodat u kunt zien wat er op het apparaat gebeurt. Als u een virtuele machine gebruikt, maakt u nu verbinding met die machine. Gebruik hiervoor de gebruikersnaam van de beheerder die u hebt ingesteld en de DNS-naam die door de implementatieopdracht is uitgevoerd. U kunt de DNS-naam ook vinden op de overzichtspagina van de virtuele machine in Azure Portal. Gebruik de volgende opdracht om verbinding te maken met uw virtuele machine. Vervang {admin username}
en {DNS name}
door uw eigen waarden.
ssh {admin username}@{DNS name}
Zodra er verbinding met uw virtuele machine is gemaakt, controleert u of de runtime goed is geïnstalleerd en geconfigureerd op uw IoT Edge-apparaat.
Controleer of IoT Edge wordt uitgevoerd. Met de volgende opdracht moet de status OK worden geretourneerd als IoT Edge wordt uitgevoerd of servicefouten opgeeft.
sudo iotedge system status
Tip
U hebt verhoogde bevoegdheden nodig om
iotedge
-opdrachten uit te voeren. Nadat u zich de eerste keer na de installatie van de IoT Edge-runtime hebt afgemeld en opnieuw hebt aangemeld, worden uw machtigingen automatisch bijgewerkt. Gebruik tot die tijdsudo
voorafgaand aan de opdrachten.Als u problemen met de service moet oplossen, haalt u de servicelogboeken op.
sudo iotedge system logs
Bekijk alle modules die op uw IoT Edge-apparaat worden uitgevoerd. Aangezien de service net voor het eerst is gestart, zou u moeten zien dat alleen de edgeAgent-module actief is. De edgeAgent-module wordt standaard uitgevoerd en helpt bij het installeren en starten van aanvullende modules die u op uw apparaat implementeert.
sudo iotedge list
Uw IoT Edge-apparaat is nu geconfigureerd. Het is gereed voor de uitvoering van modules die in de cloud zijn geïmplementeerd.
Een module implementeren
Beheer uw Azure IoT Edge-apparaat vanuit de cloud om een module te implementeren waarmee telemetriegegevens worden verzonden naar IoT Hub.
Een van de belangrijkste mogelijkheden van Azure IoT Edge is het implementeren van code op uw IoT Edge-apparaten vanuit de cloud. IoT Edge-modules zijn uitvoerbare pakketten die zijn geïmplementeerd als containers. In deze sectie implementeert u een vooraf gebouwde module uit de sectie IoT Edge-modules van Microsoft-artefactregister.
De module die u in deze sectie implementeert, simuleert een sensor en verzendt gegenereerde gegevens. Deze module is een handig stukje code wanneer u aan de slag gaat met IoT Edge, omdat u de gesimuleerde gegevens kunt gebruiken voor ontwikkel- en testdoeleinden. Als u precies wilt zien wat deze module doet, kunt u de broncode van de gesimuleerde temperatuursensor bekijken.
Volg deze stappen om uw eerste module te implementeren.
Meld u aan bij Azure Portal en ga naar uw IoT Hub.
Selecteer Apparaten in het menu aan de linkerkant onder Apparaatbeheer.
Selecteer de apparaat-id van het IoT Edge-doelapparaat in de lijst.
Wanneer u een nieuw IoT Edge-apparaat maakt, wordt de statuscode
417 -- The device's deployment configuration is not set
weergegeven in Azure Portal. Deze status is normaal en betekent dat het apparaat gereed is voor het ontvangen van een module-implementatie.Selecteer op de bovenste balk Modules instellen.
Kies welke modules u wilt uitvoeren op uw apparaat. U kunt kiezen uit modules die u zelf of installatiekopieën in een containerregister hebt gemaakt. In deze quickstart implementeert u een module uit het Microsoft-containerregister.
Selecteer Toevoegen in de sectie IoT Edge-modules en kies vervolgens IoT Edge-module.
Werk de volgende module-instellingen bij:
Instelling Weergegeven als Naam van IoT-module SimulatedTemperatureSensor
URI installatiekopie mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:latest
Beleid voor opnieuw opstarten altijd Gewenste status actief Selecteer Volgende: Routes om door te gaan met het configureren van routes.
Voeg een route toe waarmee alle berichten van de gesimuleerde temperatuurmodule naar IoT Hub worden verzonden.
Instelling Weergegeven als Naam SimulatedTemperatureSensorToIoTHub
Weergegeven als FROM /messages/modules/SimulatedTemperatureSensor/* INTO $upstream
Selecteer Volgende: Beoordelen en maken.
Controleer het JSON-bestand en selecteer Vervolgens Maken. Het JSON-bestand definieert alle modules die u op uw IoT Edge-apparaat implementeert.
Notitie
Wanneer u een nieuwe implementatie naar een IoT Edge-apparaat verzendt, wordt er niets naar uw apparaat gepusht. In plaats daarvan voert het apparaat regelmatig query’s op IoT Hub uit naar eventuele nieuwe instructies. Als het apparaat een bijgewerkt distributiemanifest vindt, wordt de informatie over de nieuwe implementatie gebruikt om installatiekopieën van de module op te halen uit de cloud en wordt een lokale uitvoering van de modules gestart. Dit proces kan enkele minuten in beslag nemen.
Nadat u de informatie over de implementatie van de module hebt gemaakt, gaat de wizard terug naar de pagina met apparaatdetails. Bekijk de implementatiestatus op het tabblad Modules .
U ziet drie modules: $edgeAgent, $edgeHub en SimulatedTemperatureSensor. Als een of meer van de modules Ja hebben onder Opgegeven in Implementatie, maar niet onder Gerapporteerd door apparaat, wordt uw IoT Edge-apparaat nog steeds gestart. Wacht enkele minuten en vernieuw de pagina.
Als u problemen ondervindt met het implementeren van modules, raadpleegt u Problemen met IoT Edge-apparaten oplossen vanuit Azure Portal.
Gegenereerde gegevens weergeven
In deze snelstart hebt u een nieuw IoT Edge-apparaat gemaakt en de IoT Edge-runtime erop geïnstalleerd. Vervolgens hebt u de Azure-portal gebruikt om een IoT Edge-module te implementeren om te worden uitgevoerd op het apparaat zonder dat er wijzigingen aan het apparaat zelf hoefden te worden aangebracht.
In dit geval worden met de module die u hebt gepusht, gegevens voor een voorbeeldomgeving gegenereerd die u later voor testen kunt gebruiken. De gesimuleerde sensor bewaakt zowel een machine als de omgeving rond die machine. Deze sensor kan zich bijvoorbeeld in een serverruimte, in een fabriek of op een windturbine bevinden. Het bericht bevat informatie over de omgevingstemperatuur, de luchtvochtigheid, de machinetemperatuur en de druk, evenals een tijdstempel. In de IoT Edge-zelfstudies worden gegevens van deze module gebruikt als testgegevens voor analyses.
Open opnieuw de opdrachtprompt op uw IoT Edge-apparaat of gebruik de SSH-verbinding vanuit de Azure CLI. Bevestig dat de module die vanuit de cloud is geïmplementeerd, op uw IoT Edge -apparaat wordt uitgevoerd:
sudo iotedge list
De berichten bekijken die vanuit de temperatuursensormodule worden verzonden:
sudo iotedge logs SimulatedTemperatureSensor -f
Tip
IoT Edge-opdrachten zijn hoofdlettergevoelig wanneer u naar modulenamen verwijst.
Resources opschonen
Als u wilt doorgaan met de IoT Edge-zelfstudies, kunt u het apparaat gebruiken dat u hebt geregistreerd en ingesteld in deze snelstart. Anders kunt u de Azure-resources die u hebt gemaakt verwijderen om kosten te voorkomen.
Als u uw virtuele machine en IoT-hub in een nieuwe resourcegroep hebt gemaakt, kunt u die groep en alle bijbehorende resources verwijderen. Controleer de inhoud van de resourcegroep zorgvuldig om te na te gaan of er niets is dat u wilt behouden. Als u niet de hele groep wilt verwijderen, kunt u in plaats daarvan afzonderlijke resources verwijderen.
Belangrijk
Het verwijderen van een resourcegroep kan niet ongedaan worden gemaakt.
Verwijder de groep IoTEdgeResources. Het kan enkele minuten duren voordat een resourcegroep is verwijderd.
az group delete --name IoTEdgeResources --yes
U kunt controleren of de resourcegroep is verwijderd door de lijst met resourcegroepen te bekijken.
az group list
Volgende stappen
In deze snelstart hebt u een IoT Edge-apparaat gemaakt en de Azure IoT Edge-cloudinterface gebruikt om code te implementeren op het apparaat. U hebt nu een testapparaat waarmee ruwe gegevens over de omgeving worden gegenereerd.
In de volgende zelfstudie leert u hoe u de activiteit en status van uw apparaat kunt bewaken vanuit Azure Portal.