Delen via


Quickstart: Uw eerste IoT Edge-module implementeren op een virtueel Linux-apparaat

Van toepassing op:IoT Edge 1.5 afvinken IoT Edge 1.5

Belangrijk

IoT Edge 1.5 LTS is de ondersteunde release. IoT Edge 1.4 LTS bereikt het einde van de levensduur op 12 november 2024. Als u een eerdere versie gebruikt, raadpleegt u Update IoT Edge.

Probeer Azure IoT Edge in deze quickstart door containercode te implementeren op een virtueel Linux-IoT Edge-apparaat. IoT Edge kunt u op afstand code op uw apparaten beheren, zodat u meer workloads naar de rand kunt verzenden. Gebruik voor deze quickstart een Azure virtuele machine voor uw IoT Edge-apparaat. Hiermee kunt u snel een testmachine maken en deze verwijderen wanneer u klaar bent.

In deze snelstart leert u de volgende zaken:

  • Maak een IoT Hub.
  • Registreer een IoT Edge apparaat bij uw IoT-hub.
  • Installeer en start de IoT Edge runtime op een virtueel apparaat.
  • Implementeer een module op afstand op een IoT Edge apparaat.

Diagram van quickstart-architectuur voor apparaat en cloud.

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 de Azure-portal op uw apparaat. In deze quickstart wordt een gesimuleerde sensormodule gebruikt waarmee temperatuur-, vochtigheids- 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 voor zakelijke inzichten worden geanalyseerd.

Als u geen actief Azure-abonnement hebt, maakt u een vrij account voordat u begint.

Vereisten

Stel uw omgeving in voor de Azure CLI.

Een resourcegroep om alle resources die u in deze snelstartgids beheert, te beheren. In deze quickstart en de volgende zelfstudies wordt gebruikgemaakt van de voorbeeldresourcegroepnaam IoTEdgeResources.

az group create --name IoTEdgeResources --location westus2

Een IoT Hub maken

Start de quickstart door een IoT Hub te maken met de Azure CLI.

Diagram waarin wordt getoond hoe u een IoT Hub maakt in de cloud.

Het gratis niveau van IoT Hub werkt voor deze snelstartgids. 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 maken van een IoT Hub kan enkele minuten duren.

az iot hub create --resource-group IoTEdgeResources --name <hub-name> --sku F1 --partition-count 2

Als er een fout optreedt omdat uw abonnement al één gratis IoT Hub bevat, wijzigt u de SKU in S1. Elk abonnement biedt toegang tot slechts één gratis IoT-hub. Als er een foutbericht wordt weergegeven dat de IoT Hub naam 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 de IoT-hub die u zojuist hebt gemaakt.

Diagram van het registreren van een apparaat met een IoT Hub identity.

Maak een apparaat-id voor uw IoT Edge apparaat, zodat het kan communiceren met uw IoT-hub. De apparaat-id bevindt zich in de cloud, en u gebruikt een unieke apparaat verbindingstekenreeks om een fysiek apparaat te koppelen aan een apparaat-id.

Omdat IoT Edge apparaten zich gedragen en anders worden beheerd dan typische IoT-apparaten, declareert u deze identiteit als een IoT Edge apparaat met behulp van de vlag --edge-enabled.

  1. Voer de volgende opdracht in Azure Cloud Shell in om een apparaat met de naam myEdgeDevice te maken in uw hub.

    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 de Cloud Shell de meest recente versie van de extensie azure-iot uitvoert.

  2. Controleer de connection string voor uw apparaat, waarmee het fysieke apparaat wordt gekoppeld aan de identiteit in IoT Hub. Het bevat de naam van uw IoT Hub, de naam van uw apparaat en een gedeelde sleutel waarmee verbindingen tussen deze apparaten worden geverifieerd. U gebruikt deze connection string opnieuw in de volgende sectie om uw IoT Edge apparaat in te stellen.

    az iot hub device-identity connection-string show --device-id myEdgeDevice --hub-name <hub-name>
    

    De connection string moet er bijvoorbeeld ongeveer uitzien als HostName=contoso-hub.azure-devices.net;DeviceId=myEdgeDevice;SharedAccessKey=<DEVICE-SHARED-ACCESS-KEY>.

Uw IoT Edge-apparaat configureren

Maak een virtuele machine met de Azure IoT Edge runtime.

Diagram van het starten van de runtime op een apparaat.

De IoT Edge runtime wordt geïmplementeerd op alle IoT Edge apparaten en heeft drie onderdelen. De IoT Edge beveiligingsdaemon wordt elke keer gestart wanneer een IoT Edge-apparaat wordt opgestart en bereidt het apparaat voor door de IoT Edge-agent te starten. De IoT Edge-agent vereenvoudigt de implementatie en bewaking van modules op het IoT Edge apparaat, inclusief de IoT Edge hub. De IoT Edge hub beheert de communicatie tussen modules op het IoT Edge apparaat en tussen het apparaat en IoT Hub.

Geef tijdens de runtimeconfiguratie een verbindingstekenreeks voor het apparaat op. Deze tekenreeks wordt opgehaald uit 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 erop te installeren. Als u in plaats daarvan uw eigen Linux-apparaat wilt gebruiken, kunt u de installatiestappen volgen in Manually één Linux-IoT Edge-apparaat inrichten en vervolgens terugkeren naar deze quickstart.

Gebruik de knop Deploy naar Azure of CLI-opdrachten om een IoT Edge-apparaat te maken op basis van de voorgebouwde sjabloon iotedge-vm-deploy.

  • Implementeren met behulp van de IoT Edge Azure Resource Manager-sjabloon.

    Implementeren naar Azure

  • Voor bash- of Cloud Shell gebruikers kopieert u de volgende opdracht naar een teksteditor, vervangt u de tekst van de tijdelijke aanduiding door uw gegevens en kopieert u deze vervolgens naar uw 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 Beschrijving
resource-group De middelen groep waarin de middelen worden aangemaakt. 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 aanwijzer 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 connection string van de apparaat-id in IoT Hub, die wordt gebruikt om de IoT Edge runtime op de virtuele machine te configureren. De CLI-opdracht binnen deze parameter haalt de connection string voor u op. Vervang de tekst van de tijdelijke aanduiding door de naam van uw IoT-hub.
authenticatietype 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.

Nadat de implementatie is voltooid, bevat JSON-opgemaakte uitvoer in de CLI de SSH-gegevens om verbinding te maken met de virtuele machine. Kopieer de waarde van de publieke SSH-invoer van de uitvoersectie. Uw SSH-opdracht moet er bijvoorbeeld ongeveer als ssh azureUser@edge-vm.westus2.cloudapp.azure.comvolgt uitzien.

De runtimestatus van IoT Edge weergeven

De rest van de opdrachten in deze quickstart vindt plaats 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 uw virtuele machine in de 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>

Nadat u verbinding hebt gemaakt met uw virtuele machine, controleert u of de runtime is geïnstalleerd en geconfigureerd op uw IoT Edge apparaat.

  1. Controleer of IoT Edge draait. Met de volgende opdracht wordt een status van Ok geretourneerd als IoT Edge wordt uitgevoerd of servicefouten bevat.

    sudo iotedge system status
    

    Tip

    U hebt verhoogde bevoegdheden nodig om iotedge-opdrachten uit te voeren. Zodra u zich afmeldt bij uw computer en zich de eerste keer weer aanmeldt nadat u de IoT Edge runtime hebt geïnstalleerd, worden uw machtigingen automatisch bijgewerkt. Gebruik tot die tijd sudo voorafgaand aan de opdrachten.

  2. Als u problemen met de service moet oplossen, haalt u de servicelogboeken op.

    sudo iotedge system logs
    
  3. 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 apparaattelemetriegegevens naar IoT Hub worden verzonden.

Diagram van het implementeren van een module van cloud naar apparaat.

Een belangrijke mogelijkheid 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 vanuit de sectie IoT Edge Modules van Microsoft Artifact Registry.

De module die u in deze sectie implementeert, simuleert een sensor en verzendt gegenereerde gegevens. Deze module is een nuttig stukje code wanneer u aan de slag gaat met IoT Edge omdat u de gesimuleerde gegevens kunt gebruiken voor ontwikkeling en testen. Als u precies wilt zien wat deze module doet, kunt u de broncode van de simulated temperatuursensor bekijken.

Gebruik deze stappen om uw eerste module te implementeren.

  1. Meld u aan bij de Azure-portal en ga naar uw IoT Hub.

  2. Selecteer in het menu aan de linkerkant onder Device ManagementDevices.

  3. Selecteer in de lijst de apparaat-id van het doel-IoT Edge-apparaat.

    Wanneer u een nieuw IoT Edge-apparaat maakt, wordt de statuscode weergegeven 417 -- The device's deployment configuration is not set in de Azure-portal. Deze status is normaal en betekent dat het apparaat gereed is voor het ontvangen van een module-implementatie.

  4. Selecteer op de bovenste balk Modules instellen.

    Selecteer de modules die u op uw apparaat wilt uitvoeren. U kunt kiezen uit zelfgebouwde modules of images in een containerregister. In deze quickstart implementeert u een module uit het Microsoft-containerregister.

  5. Selecteer in de sectie IoT Edge modulesToevoegen en kies vervolgens IoT Edge Module.

  6. Werk de volgende module-instellingen bij:

    Instelling Waarde
    Naam van IoT-module SimulatedTemperatureSensor
    URI afbeelding mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:latest
    Beleid voor opnieuw opstarten altijd
    Gewenste status draaien
  7. Selecteer Volgende: Routes om door te gaan met het configureren van routes.

  8. Voeg een route toe waarmee alle berichten van de gesimuleerde temperatuurmodule naar IoT Hub worden verzonden.

    Instelling Waarde
    Naam SimulatedTemperatureSensorToIoTHub
    Waarde FROM /messages/modules/SimulatedTemperatureSensor/* INTO $upstream
  9. Selecteer Volgende: Beoordelen en maken.

  10. Controleer het JSON-bestand en selecteer 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 vraagt het apparaat regelmatig bij IoT Hub om 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 onder Yes bij Specified in Deployment staan, maar niet onder Reported by Device, dan worden ze nog steeds gestart door uw IoT Edge-apparaat. Wacht enkele minuten en vernieuw de pagina.

Schermopname van de SimulatedTemperatureSensor in de lijst met geïmplementeerde modules.

Als u problemen ondervindt met het implementeren van modules, vindt u meer informatie in Troubleshoot IoT Edge apparaten vanuit de Azure-portal.

Gegenereerde gegevens weergeven

In deze quickstart maakt u een nieuw IoT Edge apparaat en installeert u de IoT Edge runtime erop. Vervolgens gebruikt u de Azure-portal om een IoT Edge-module te implementeren om op het apparaat uit te voeren zonder wijzigingen aan te brengen in het apparaat zelf.

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, op een fabrieksvloer of op een windturbine bevinden. Het bericht bevat informatie over de omgevingstemperatuur, de luchtvochtigheid, de machinetemperatuur en de druk, evenals een tijdstempel. De IoT Edge zelfstudies gebruiken de gegevens die door deze module zijn gemaakt als testgegevens voor analyse.

Open de opdrachtprompt op uw IoT Edge apparaat of gebruik de SSH-verbinding van Azure CLI. Controleer of de module die u vanuit de cloud hebt geïmplementeerd, wordt uitgevoerd op uw IoT Edge-apparaat:

sudo iotedge list

Schermopname van drie modules op uw apparaat.

Bekijk de berichten die zijn verzonden vanuit de temperatuursensormodule:

sudo iotedge logs SimulatedTemperatureSensor -f

Schermopname van gegevens uit uw module in de uitvoerconsole.

Tip

IoT Edge-opdrachten zijn hoofdlettergevoelig bij het verwijzen naar de modulenamen.

Middelen opschonen

Als u wilt doorgaan met de IoT Edge zelfstudies, gebruikt u het apparaat dat u hebt geregistreerd en ingesteld in deze snelstart. Verwijder anders de Azure resources die u hebt gemaakt 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 om ervoor te zorgen dat 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 ioTEdgeResources-groep . Het verwijderen van een resourcegroep kan enkele minuten duren.

az group delete --name IoTEdgeResources --yes

Controleer of de resourcegroep is verwijderd door de lijst met resourcegroepen weer te geven.

az group list

Volgende stappen

In deze quickstart hebt u een IoT Edge apparaat gemaakt en de Azure IoT Edge cloudinterface gebruikt om code op het apparaat te implementeren. U gebruikt nu een testapparaat waarmee onbewerkte gegevens over de omgeving worden gegenereerd.

In de volgende zelfstudie leert u hoe u de activiteit en status van uw apparaat kunt bewaken vanuit de Azure-portal.