Dela via


Snabbstart: Distribuera din första IoT Edge modul till en virtuell Linux-enhet

Applies to:IoT Edge 1.5 bock IoT Edge 1.5

Viktigt!

IoT Edge 1.5 LTS är den version som stöds. IoT Edge 1.4 LTS upphörde den 12 november 2024. Om du använder en tidigare version läser du Update IoT Edge.

Prova Azure IoT Edge i den här snabbstarten genom att distribuera containerbaserad kod till en virtuell Linux-IoT Edge enhet. IoT Edge låter dig fjärrhantera kod på dina enheter så att du kan förlägga fler av dina arbetsbelastningar till kanten. I den här snabbstarten använder du en Azure virtuell dator för din IoT Edge enhet. Med den kan du snabbt skapa en testdator och ta bort den när du är klar.

I den här snabbstarten lär du dig att:

  • Skapa en IoT Hub.
  • Registrera en IoT Edge enhet till din IoT-hubb.
  • Installera och starta IoT Edge-körningen på en virtuell enhet.
  • Distribuera en modul via fjärranslutning till en IoT Edge enhet.

Diagram över snabbstartsarkitektur för enhet och moln.

Den här snabbstarten vägleder dig genom att skapa en virtuell Linux-dator som är konfigurerad för att vara en IoT Edge enhet. Sedan distribuerar du en modul från Azure-portalen till enheten. Den här snabbstarten använder en simulerad sensormodul som genererar temperatur, luftfuktighet och tryckdata. De andra Azure IoT Edge självstudierna bygger på det arbete du gör här genom att distribuera ytterligare moduler som analyserar simulerade data för affärsinsikter.

Om du inte har en aktiv Azure prenumeration skapar du ett free-konto innan du börjar.

Förutsättningar

Konfigurera din miljö för Azure CLI.

En resursgrupp som du använder för att hantera alla resurser i den här snabbstarten. Den här snabbstarten och följande självstudier använder namnet på exempelresursgruppen IoTEdgeResources.

az group create --name IoTEdgeResources --location westus2

Skapa en IoT Hub

Starta snabbstarten genom att skapa en IoT Hub med Azure CLI.

Diagram som visar hur du skapar en IoT Hub i cloud.

Den kostnadsfria nivån för IoT Hub fungerar för den här snabbstarten. Om du har använt IoT Hub tidigare och redan har skapat en hubb kan du använda den IoT hub.

Följande kod skapar en kostnadsfri F1-hubb i resursgruppen IoTEdgeResources. Ersätt <hub-name> med ett unikt namn för din IoT Hub. Det kan ta några minuter att skapa en IoT Hub.

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

Om du får ett fel eftersom det redan finns en kostnadsfri IoT Hub i din prenumeration ändrar du SKU:n till S1. Varje prenumeration kan bara ha en kostnadsfri IoT Hub. Om du får ett felmeddelande om att IoT Hub namn inte är tillgängligt innebär det att någon annan redan har en hubb med det namnet. Prova med ett nytt namn.

Registrera en IoT Edge enhet

Registrera en IoT Edge enhet med den IoT-hubb som du nyss skapade.

Diagram över hur du registrerar en enhet med en IoT Hub identity.

Skapa en enhetsidentitet för din IoT Edge enhet så att den kan kommunicera med din IoT-hubb. Enhetsidentiteten finns i molnet och du använder en unik anslutningssträng för enheten för att associera en fysisk enhet med en enhetsidentitet.

Eftersom IoT Edge enheter beter sig och hanteras på ett annat sätt än vanliga IoT-enheter deklarerar du den här identiteten som en IoT Edge enhet med flaggan --edge-enabled.

  1. Ange följande kommando i Azure Cloud Shell för att skapa en enhet med namnet myEdgeDevice i hubben.

    az iot hub device-identity create --device-id myEdgeDevice --edge-enabled --hub-name <hub-name>
    

    Om du får ett felmeddelande om iothubowner principnycklar kontrollerar du att Cloud Shell kör den senaste versionen av azure-iot-tillägget.

  2. Kontrollera anslutningssträng för din enhet, som länkar den fysiska enheten till dess identitet i IoT Hub. Den innehåller namnet på din IoT Hub, namnet på enheten och en delad nyckel som autentiserar anslutningar mellan dem. Du använder den här anslutningssträngen på nytt i nästa avsnitt för att konfigurera din IoT Edge-enhet.

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

    Till exempel bör connection string se ut ungefär som HostName=contoso-hub.azure-devices.net;DeviceId=myEdgeDevice;SharedAccessKey=<DEVICE-SHARED-ACCESS-KEY>.

Konfigurera din IoT Edge enhet

Skapa en virtuell dator med Azure IoT Edge-runtime.

Diagram över hur du startar körningen på en enhet.

IoT Edge-driftmiljön installeras på alla IoT Edge-enheter och har tre komponenter. IoT Edge säkerhetsdemon startar varje gång en IoT Edge enhet startar och konfigurerar enheten genom att starta IoT Edge-agenten. agenten IoT Edge underlättar distribution och övervakning av moduler på den IoT Edge enheten, inklusive IoT Edge hubb. Hubben IoT Edge hanterar kommunikationen mellan moduler på IoT Edge enheten och mellan enheten och IoT Hub.

Under körningskonfigurationen anger du en anslutningssträng för enheten. Den här strängen hämtas från Azure CLI. Den här strängen associerar din fysiska enhet med den IoT Edge enhetsidentiteten i Azure.

Installera IoT Edge-enhet

I det här avsnittet används en Azure Resource Manager mall för att skapa en ny virtuell dator och installera IoT Edge körning på den. Om du vill använda en egen Linux-enhet i stället kan du följa installationsstegen i Hantera en enda Linux-IoT Edge enhet och sedan återgå till den här snabbstarten.

Använd knappen Distribuera till Azure eller CLI-kommandon för att skapa en IoT Edge-enhet baserad på den förkonstruerade mallen iotedge-vm-deploy.

  • Distribuera med hjälp av mallen IoT Edge Azure Resource Manager.

    Distribuera till Azure

  • För bash- eller Cloud Shell användare kopierar du följande kommando till en textredigerare, ersätter platshållartexten med din information och kopierar sedan till bash- eller Cloud Shell-fönstret:

    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>"
    
  • För PowerShell-användare kopierar du följande kommando till PowerShell-fönstret och ersätter platshållartexten med din egen information:

    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>"
    

Den här mallen tar följande parametrar:

Parameter Beskrivning
resursgrupp Den resursgrupp där resurserna skapas. Använd standard-IoTEdgeResources som vi har använt i hela den här artikeln eller ange namnet på en befintlig resursgrupp i din prenumeration.
template-uri En pekare till den Resource Manager mall som vi använder.
dnsLabelPrefix En sträng som används för att skapa den virtuella datorns värdnamn. Ersätt platshållartexten med ett namn på den virtuella datorn.
adminUsername Ett användarnamn för administratörskontot för den virtuella datorn. Använd exemplet azureUser eller ange ett nytt användarnamn.
deviceConnectionString Anslutningssträngen från enhetens identitet i IoT Hub, som används för att konfigurera IoT Edge runtime på den virtuella maskinen. CLI-kommandot i den här parametern hämtar connection string åt dig. Ersätt platshållartexten med ditt IoT-hubbnamn.
autentiseringstyp Autentiseringsmetoden för administratörskontot. Den här snabbstarten använder lösenordsautentisering , men du kan också ange den här parametern till sshPublicKey.
adminPasswordOrKey Lösenordet eller värdet för SSH-nyckeln för administratörskontot. Ersätt platshållartexten med ett säkert lösenord. Lösenordet måste vara minst 12 tecken långt och ha tre av fyra av följande: gemener, versaler, siffror och specialtecken.

När distributionen är klar innehåller JSON-formaterade utdata i CLI SSH-informationen för att ansluta till den virtuella datorn. Kopiera värdet för den offentliga SSH-posten i utdataavsnittet. SSH-kommandot bör till exempel se ut ungefär som ssh azureUser@edge-vm.westus2.cloudapp.azure.com.

Visa IoT Edge körningsstatus

Resten av kommandona i den här snabbstarten sker på själva IoT Edge enheten, så att du kan se vad som händer på enheten. Om du använder en virtuell dator ansluter du till den datorn nu med det administratörsanvändarnamn som du har konfigurerat och DNS-namnet som utdata från distributionskommandot. Du hittar även DNS-namnet på översiktssidan för den virtuella datorn i Azure portalen. Använd följande kommando för att ansluta till din virtuella dator. Ersätt <admin-username> och <DNS-name> med dina egna värden.

ssh <admin-username>@<DNS-name>

När du har anslutit till den virtuella datorn kontrollerar du att körtiden har installerats och konfigurerats på din IoT Edge-enhet.

  1. Kontrollera om IoT Edge körs. Följande kommando returnerar statusen Ok om IoT Edge körs eller innehåller några tjänstfel.

    sudo iotedge system status
    

    Tips

    Förhöjd behörighet krävs för att köra iotedge-kommandon. När du loggar ut från datorn och loggar tillbaka första gången efter installationen av IoT Edge-körningen uppdateras dina behörigheter automatiskt. Tills dess använder du sudo framför kommandona.

  2. Hämta tjänstloggar om du behöver felsöka tjänsten.

    sudo iotedge system logs
    
  3. Visa alla moduler som körs på din IoT Edge enhet. Eftersom det är första gången du startar tjänsten, bör du bara kunna se den edgeAgent-modul som körs. EdgeAgent-modulen körs som standard och hjälper till att installera och starta eventuella ytterligare moduler som du distribuerar till enheten.

    sudo iotedge list
    

Din IoT Edge enheten är nu konfigurerad. Den är redo att köra molndistribuerade moduler.

Distribuera en modul

Hantera din Azure IoT Edge enhet från molnet för att distribuera en modul som skickar telemetridata för enheten till IoT Hub.

Diagram över hur du distribuerar en modul från molnet till enheten.

En viktig funktion för Azure IoT Edge är att distribuera kod till dina IoT Edge enheter från molnet. IoT Edge-moduler är körbara paket som implementeras som containrar. I det här avsnittet distribuerar du en fördefinierad modul från avsnittet IoT Edge Modules i Microsoft Artifact Registry.

Den modul som du distribuerar i det här avsnittet simulerar en sensor och skickar genererade data. Den här modulen är en användbar kod när du kommer igång med IoT Edge eftersom du kan använda simulerade data för utveckling och testning. Om du vill se exakt vad den här modulen gör kan du visa källkoden simulerad temperatursensor.

Använd de här stegen för att distribuera din första modul.

  1. Logga in på Azure-portalen och gå till din IoT Hub.

  2. På menyn till vänster under Device Management väljer du Enheter.

  3. Välj enhets-ID för den målinriktade IoT Edge-enheten i listan.

    När du skapar en ny IoT Edge enhet visas statuskoden 417 -- The device's deployment configuration is not set i Azure-portalen. Den här statusen är normal och innebär att enheten är redo att ta emot en moduldistribution.

  4. I det övre fältet väljer du Ange moduler.

    Välj de moduler som du vill köra på enheten. Du kan välja mellan moduler som du har skapat själv eller avbildningar i ett containerregister. I den här snabbstarten distribuerar du en modul från Microsoft-containerregistret.

  5. I avsnittet IoT Edge väljer du Lägg till välj sedan IoT Edge Module.

  6. Uppdatera följande modulinställningar:

    Inställning Värde
    Namn på IoT-modul SimulatedTemperatureSensor
    URI för bild mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:latest
    Omstartsprincip alltid
    Önskad status körs
  7. Välj Nästa: Vägar för att fortsätta konfigurera vägar.

  8. Lägg till en väg som skickar alla meddelanden från modulen för simulerad temperatur till IoT Hub.

    Inställning Värde
    Name SimulatedTemperatureSensorToIoTHub
    Värde FROM /messages/modules/SimulatedTemperatureSensor/* INTO $upstream
  9. Välj Nästa: Granska + skapa.

  10. Granska JSON-filen och välj sedan Skapa. JSON-filen definierar alla moduler som du distribuerar till din IoT Edge enhet.

    Kommentar

    När du skickar en ny distribution till en IoT Edge enhet skickas ingenting till enheten. I stället frågar enheten IoT Hub regelbundet efter nya instruktioner. Om enheten hittar ett uppdaterat distributionsmanifest använder den informationen om den nya distributionen för att hämta modulavbildningarna från molnet och börjar sedan köra modulerna lokalt. Den här processen kan ta några minuter.

När du har skapat information om moduldistributionen returnerar guiden dig till enhetens informationssida. Visa distributionsstatus på fliken Moduler .

Du bör se tre moduler: $edgeAgent, $edgeHub och SimulatedTemperatureSensor. Om en eller flera av modulerna har Ja under Angiven i Deployment men inte under Reported by Device, startar din IoT Edge-enhet dem fortfarande. Vänta några minuter och uppdatera sidan.

Skärmbild som visar SimulatedTemperatureSensor i listan över distribuerade moduler.

Om du har problem med att distribuera moduler kan du läsa mer i Felsöka IoT Edge enheter från Azure-portalen.

Visa genererade data

I den här snabbstarten skapar du en ny IoT Edge enhet och installerar IoT Edge-körningen på den. Sedan använder du Azure-portalen för att distribuera en IoT Edge modul för att köras på enheten utan att göra ändringar i själva enheten.

I det här fallet genererar modulen som du pushade exempelmiljödata som du kan använda för testning senare. Den simulerade sensorn övervakar både en dator och miljön runt datorn. Den här sensorn kan till exempel finnas i ett serverrum, på fabriksgolvet eller på ett vindkraftverk. Meddelandet innehåller rumstemperatur och fuktighet, maskintemperatur och tryck samt en tidsstämpel. I självstudier om IoT Edge används datan som skapas av den här modulen som testdata för analys.

Öppna kommandotolken på din IoT Edge enhet eller använd SSH-anslutningen från Azure CLI. Bekräfta att modulen som du distribuerade från molnet körs på din IoT Edge enhet:

sudo iotedge list

Skärmbild som visar tre moduler på enheten.

Visa meddelandena som skickas från temperatursensormodulen:

sudo iotedge logs SimulatedTemperatureSensor -f

Skärmbild som visar data från modulen i utdatakonsolen.

Tips

IoT Edge-kommandon är skiftlägeskänsliga vid referens till modulnamn.

Rensa resurser

Om du vill fortsätta med självstudierna för IoT Edge använder du den enhet som du registrerade och konfigurerade i den här snabbstarten. Annars tar du bort de Azure resurser som du skapade för att undvika avgifter.

Om du skapade den virtuella datorn och IoT-hubben i en ny resursgrupp kan du ta bort den gruppen och alla associerade resurser. Dubbelkolla innehållet i resursgruppen för att säkerställa att det inte finns något du vill behålla. Om du inte vill ta bort hela gruppen kan du ta bort enskilda resurser i stället.

Viktigt!

Att ta bort en resursgrupp kan inte ångras.

Ta bort gruppen IoTEdgeResources . Det kan ta några minuter att ta bort en resursgrupp.

az group delete --name IoTEdgeResources --yes

Bekräfta att resursgruppen har tagits bort genom att visa listan över resursgrupper.

az group list

Nästa steg

I den här snabbstarten skapade du en IoT Edge enhet och använde Azure IoT Edge molngränssnittet för att distribuera kod till enheten. Nu använder du en testenhet som genererar rådata om dess miljö.

I nästa självstudie får du lära dig hur du övervakar enhetens aktivitet och hälsotillstånd från Azure-portalen.