Självstudie: Utveckla IoT Edge med Linux-containrar
Gäller för:
IoT Edge 1,1
IoT Edge 1,2
Använd Visual Studio Code för att utveckla och distribuera kod till enheter som kör IoT Edge.
I snabbstarten skapade du en IoT Edge och distribuerade en modul från Azure Marketplace. Den här självstudien visar hur du utvecklar och distribuerar din egen kod till en IoT Edge enhet. Den här artikeln är ett användbart krav för de andra självstudierna, som går in mer i detalj på specifika programmeringsspråk eller Azure-tjänster.
I den här självstudien används ett exempel på hur du distribuerar en C#-modul till en Linux-enhet. Det här exemplet valdes eftersom det är det vanligaste scenariot för utvecklare IoT Edge lösningar. Även om du planerar att använda ett annat språk eller distribuera en Azure-tjänst är den här självstudien fortfarande användbar för att lära dig mer om utvecklingsverktyg och begrepp. Slutför den här introduktionen till utvecklingsprocessen och välj sedan önskat språk eller Azure-tjänst för att fördjupa dig i detaljerna.
I den här guiden får du lära dig att:
- Konfigurera utvecklingsdatorn.
- Använd verktygen IoT Edge för Visual Studio Code för att skapa ett nytt projekt.
- Skapa projektet som en container och lagra det i ett Azure-containerregister.
- Distribuera din kod till en IoT Edge enhet.
Förutsättningar
En utvecklingsdator:
- Du kan använda din egen dator eller en virtuell dator, beroende på dina utvecklingsinställningar.
- Kontrollera att utvecklingsdatorn stöder kapslad virtualisering. Den här funktionen är nödvändig för att köra en containermotor, som du installerar i nästa avsnitt.
- De flesta operativsystem som kan köra en containermotor kan användas för att utveckla IoT Edge moduler för Linux-enheter. Den här självstudien använder Windows en dator, men pekar på kända skillnader i macOS eller Linux.
- Installera Gitför att hämta mallpaket för moduler senare i den här självstudien.
- C# för Visual Studio Code-tillägg (drivs av OmniSharp).
- .NET Core 2.1 SDK.
En Azure IoT Edge-enhet:
- Vi rekommenderar att du inte kör IoT Edge på utvecklingsdatorn utan i stället använder en separat enhet. Den här skillnaden mellan utvecklingsdatorn och IoT Edge på ett mer exakt sätt speglar ett verkligt distributionsscenario och hjälper till att hålla de olika begreppen räta.
- Om du inte har en andra enhet tillgänglig kan du använda snabbstartsartikeln för att skapa en IoT Edge i Azure med en virtuell Linux-dator.
Molnresurser:
- En kostnadsfri IoT-hubb eller en IoT-hubb på standardnivå i Azure.
Om du inte har en Azure-prenumerationkan du skapa ett kostnads fritt konto innan du börjar.
Viktiga begrepp
Den här självstudien går igenom utvecklingen av en IoT Edge modul. En IoT Edge modul, eller ibland bara modul för kort, är en container med körbar kod. Du kan distribuera en eller flera moduler till en IoT Edge enhet. Moduler utför specifika uppgifter som att mata in data från sensorer, rensa och analysera data eller skicka meddelanden till en IoT-hubb. Mer information finns i Förstå Azure IoT Edge moduler.
När du IoT Edge moduler är det viktigt att du förstår skillnaden mellan utvecklingsdatorn och IoT Edge där modulen så småningom kommer att distribueras. Den container som du skapar för att innehålla modulkoden måste matcha operativsystemet (OS) för målenheten. Det vanligaste scenariot är till exempel att någon utvecklar en modul på en Windows dator som avser att rikta in sig på en Linux-enhet som kör IoT Edge. I så fall skulle containeroperativsystemet vara Linux. När du går igenom den här självstudien bör du tänka på skillnaden mellan operativsystemet för utvecklingsdatorn och operativsystemet för containrar.
Tips
Om du använder IoT Edge Linux på Windowsär målenheten i ditt scenario den virtuella Linux-datorn, inte den Windows värden.
Den här självstudien riktar sig till enheter IoT Edge med Linux-containrar. Du kan använda det operativsystem du föredrar så länge utvecklingsdatorn kör Linux-containrar. Vi rekommenderar att Visual Studio Code för att utveckla med Linux-containrar, så det är det som den här självstudien använder. Du kan använda Visual Studio också, även om det finns skillnader i stödet mellan de två verktygen.
I följande tabell visas de utvecklingsscenarier som stöds för Linux-containrar i Visual Studio Code och Visual Studio.
| Visuell Studio-kod | Visual Studio 2017/2019 | |
|---|---|---|
| Linux-enhetsarkitektur | Linux AMD64 Linux ARM32 |
Linux AMD64 Linux ARM32 |
| Azure-tjänster | Azure Functions Azure Stream Analytics Azure Machine Learning |
|
| Språk | C C# Java Node.js Python |
C C# |
| Mer information | Azure IoT Edge för Visual Studio Code | Azure IoT Edge Tools för Visual Studio 2017 Azure IoT Edge Tools för Visual Studio 2019 |
Anteckning
Stöd för Linux ARM64-enheter är tillgängligt i offentlig förhandsversion. Mer information finns i Utveckla och felsöka ARM64 IoT Edge moduler i Visual Studio Code (förhandsversion).
I den här självstudien lär du dig utvecklingsstegen för Visual Studio Code. Om du hellre vill använda Visual Studio kan du läsa anvisningarna i Använda Visual Studio 2019för att utveckla och felsöka moduler för Azure IoT Edge .
Installera containermotor
IoT Edge paketeras som containrar, så du behöver en containermotor på utvecklingsdatorn för att skapa och hantera dem. Vi rekommenderar Docker Desktop för utveckling på grund av dess funktionsstöd och popularitet. Med Docker Desktop Windows du växla mellan Linux-containrar och Windows-containrar så att du enkelt kan utveckla moduler för olika typer IoT Edge enheter.
Använd Docker-dokumentationen för att installera på utvecklingsdatorn:
Installera Docker Desktop for Windows
- När du installerar Docker Desktop för Windows tillfrågas du om du vill använda Linux eller Windows containrar. Det här beslutet kan ändras när som helst med hjälp av en enkel växel. I den här självstudien använder vi Linux-containrar eftersom våra moduler riktar sig mot Linux-enheter. Mer information finns i Växla mellan Windows och Linux-containrar.
Läs Om Docker CE för installationsinformation på flera Linux-plattformar.
- För Windows-undersystem för Linux (WSL) installerar du Docker Desktop för Windows.
Konfigurera VS Code och verktyg
Använd IoT-tilläggen för Visual Studio Code för att utveckla IoT Edge moduler. Dessa tillägg tillhandahåller projektmallar, automatiserar skapandet av distributionsmanifestet och gör att du kan övervaka och hantera IoT Edge enheter. I det här avsnittet ska du Visual Studio Code och IoT-tillägget och sedan konfigurera ditt Azure-konto för att hantera IoT Hub resurser inifrån Visual Studio Code.
Installera Visual Studio Code på utvecklingsdatorn.
När installationen är klar väljer du Visa > tillägg.
Sök efter Azure IoT Tools, som i själva verket är en samling tillägg som hjälper dig att interagera med IoT Hub- och IoT-enheter, samt utveckla IoT Edge moduler.
Välj installera. Varje inkluderat tillägg installeras individuellt.
När tilläggen har installerats öppnar du kommandopaletten genom att välja Visa > kommandopalett.
I kommandopaletten söker du efter och väljer Azure: Logga in. Följ anvisningarna för att logga in på ditt Azure-konto.
I kommandopaletten igen söker du efter och väljer Azure IoT Hub: Välj IoT Hub. Följ anvisningarna för att välja din Azure-prenumeration och IoT Hub.
Öppna utforskaravsnittet i Visual Studio Code genom att antingen välja ikonen i aktivitetsfältet till vänster eller genom att välja Visa > utforskaren.
Längst ned i utforskaravsnittet expanderar du den komprimerade menyn Azure IoT Hub/Enheter. Du bör se de enheter och IoT Edge som är associerade med den IoT-hubb som du valde via kommandopaletten.

Skapa ett containerregister
I den här självstudien använder du tillägget Azure IoT-verktyg för att skapa en modul och skapa en behållar avbildning från filerna. Sedan pushar du avbildningen till ett register som lagrar och hanterar dina avbildningar. Slutligen, distribuerar du din avbildning från ditt register så det kör på din IoT Edge-enhet.
Du kan använda valfritt Docker-kompatibelt register för att lagra dina containeravbildningar. Två populära Docker-registertjänster är Azure Container Registry och Docker Hub. I den här kursen använder vi Azure Container Registry.
Om du inte redan har ett containerregister följer du dessa steg för att skapa ett nytt i Azure:
I Azure Portal väljer du Skapa en resurs > Container > Containerregister.
Skapa containerregistret genom att ange följande värden:
Fält Värde Prenumeration Välj en prenumeration i listrutan. Resursgrupp Vi rekommenderar att du använder samma resursgrupp för alla testresurser som du skapar i snabbstarterna och självstudierna om IoT Edge. Till exempel IoTEdgeResources. Registernamn Ange ett unikt namn. Location Välj en plats i närheten av dig. SKU Välj Grundläggande. Välj Skapa.
När du har skapat behållar registret, bläddrar du till det och väljer åtkomst nycklar från menyn som finns under Inställningar i den vänstra rutan.
Klicka här om du vill att administratörs användare ska kunna se användar namn och lösen ord för behållar registret.
Kopiera värdena för inloggnings Server, användar namn och lösen ord och spara dem på ett praktiskt ställe. Du använder dessa värden i den här självstudien för att ge åtkomst till behållar registret.

Skapa ett nytt modulprojekt
Tillägget Azure IoT Tools innehåller projektmallar för alla IoT Edge språk som stöds i Visual Studio Code. Dessa mallar har alla filer och all kod som du behöver för att distribuera en fungerande modul för att testa IoT Edge, eller ge dig en startpunkt för att anpassa mallen med din egen affärslogik.
I den här självstudien använder vi C#-modulmallen eftersom det är den mall som används oftast.
Skapa en projektmall
I kommandopaletten Visual Studio Code söker du efter och väljer Azure IoT Edge: New IoT Edge Solution. Följ anvisningarna och använd följande värden för att skapa din lösning:
| Fält | Värde |
|---|---|
| Välj mapp | Välj den plats på utvecklingsdatorn där Visual Studio Code ska skapa lösningsfilerna. |
| Ange ett namn på lösningen | Ange ett beskrivande namn för lösningen eller acceptera standardnamnet EdgeSolution. |
| Välj modulmall | Välj C#-modul. |
| Ange ett modulnamn | Acceptera standardvärdet SampleModule. |
| Ange Docker-bildlagringsplats för modulen | En bildlagringsplats innehåller namnet på containerregistret och namnet på containeravbildningen. Containeravbildningen fylls i baserat på det namn du angav i föregående steg. Ersätt localhost:5000 med värdet för inloggningsservern från ditt Azure-containerregister. Du kan hämta värdet för inloggningsservern från översiktssidan för ditt containerregister i Azure Portal. Den slutliga avbildningsdatabasen ser <registry name> ut som .azurecr.io/samplemodule. |

När den nya lösningen har Visual Studio code-fönstret kan du bekanta dig med de filer som den skapade:
Mappen .vscode innehåller en fil med namnet launch.json, som används för felsökning av moduler.
Mappen modules innehåller en mapp för varje modul i din lösning. Just nu bör det bara vara SampleModule, eller det namn som du gav till modulen. Mappen SampleModule innehåller huvudprogramkoden, modulens metadata och flera Docker-filer.
.env-filen innehåller autentiseringsuppgifterna till ditt containerregister. Dessa autentiseringsuppgifter delas med din IoT Edge så att den har åtkomst till att hämta containeravbildningarna.
Filen deployment.debug.template.json och filen deployment.template.json är mallar som hjälper dig att skapa ett distributionsmanifest. Ett distributionsmanifest är en fil som definierar exakt vilka moduler du vill distribuera på en enhet, hur de ska konfigureras och hur de kan kommunicera med varandra och molnet. Mallfilerna använder pekare för vissa värden. När du transformerar mallen till ett verkligt distributionsmanifest ersätts pekarna med värden som tas från andra lösningsfiler. Leta upp de två vanliga platshållarna i distributionsmallen:
- I avsnittet autentiseringsuppgifter för registret fylls adressen i automatiskt från den information som du angav när du skapade lösningen. Användarnamnet och lösenordet refererar dock till variablerna som lagras i .env-filen. Den här konfigurationen är av säkerhetsskäl eftersom .env-filen ignoreras, men inte distributionsmallen.
- I avsnittet SampleModule fylls inte containeravbildningen i trots att du angav avbildningsdatabasen när du skapade lösningen. Platshållaren pekar på filen module.json i mappen SampleModule. Om du går till den filen ser du att avbildningsfältet innehåller lagringsplatsen, men även ett taggvärde som består av versionen och plattformen för containern. Du kan iterera versionen manuellt som en del av utvecklingscykeln och välja containerplattformen med hjälp av en switcher som vi introducerar senare i det här avsnittet.
Ange IoT Edge-körningsversion
Tillägget IoT Edge som standard den senaste stabila versionen av IoT Edge när distributionstillgångar skapas. För närvarande är den senaste stabila versionen version 1.2. Om du utvecklar moduler för enheter som kör den långsiktiga supportversionen 1.1 eller den tidigare versionen av 1.0 uppdaterar du IoT Edge Runtime-versionen i Visual Studio Code så att den matchar.
Välj Visa > kommandopalett.
I kommandopaletten anger och kör du kommandot Azure IoT Edge: Ange standardversion IoT Edge körningsversion.
Välj den körningsversion som IoT Edge kör enheterna i listan.
När du har valt en ny körningsversion uppdateras distributionsmanifestet dynamiskt för att återspegla ändringen av körningsmodulavbildningarna.
Ange autentiseringsuppgifterna för registret till IoT Edge agenten
Miljöfilen lagrar autentiseringsuppgifterna för containerregistret och delar dem med körningsmiljön för IoT Edge. Körningen behöver dessa autentiseringsuppgifter för att hämta containeravbildningarna till den IoT Edge enheten.
Anteckning
Om du inte ersätter värdet localhost:5000 med inloggningsservervärdet från Azure-containerregistret kommer avsnittet .env-fil och registryCredentials i distributionsmanifestet att saknas i steget Skapa en projektmall.
Tillägget IoT Edge försöker hämta dina autentiseringsuppgifter för containerregistret från Azure och fylla i dem i miljöfilen. Kontrollera om dina autentiseringsuppgifter redan ingår. Annars lägger du till dem nu:
- Öppna .env-filen i modullösningen.
- Lägg till de värden för användarnamn och lösenord som du kopierade från Azure-containerregistret.
- Spara ändringarna i .env-filen.
Anteckning
I den här självstudien används autentiseringsuppgifter för administratörsinloggning Azure Container Registry, vilket är praktiskt för utvecklings- och testscenarier. När du är redo för produktionsscenarier rekommenderar vi ett autentiseringsalternativ med minsta behörighet som tjänstens huvudnamn eller token som är begränsade till lagringsplatsen. Mer information finns i Hantera åtkomst till containerregistret.
Välj din målarkitektur
För närvarande Visual Studio Code utveckla C#-moduler för Linux AMD64- och ARM32v7-enheter. Du måste välja vilken arkitektur du riktar in dig på med varje lösning, eftersom det påverkar hur containern byggs och körs. Standardvärdet är Linux AMD64.
Öppna kommandopaletten och sök efter Azure IoT Edge: Ange standardmålplattform för Edge-lösning, eller välj genvägsikonen i sidofältet längst ned i fönstret.

I kommandopaletten väljer du målarkitekturen i listan med alternativ. I den här självstudien använder vi en virtuell Ubuntu-dator som IoT Edge enhet, så vi behåller standardinställningen amd64.
Granska exempelkoden
Lösningsmallen som du skapade innehåller exempelkod för en IoT Edge modul. Den här exempelmodulen tar bara emot meddelanden och skickar dem vidare. Pipelinefunktionen demonstrerar ett viktigt begrepp i IoT Edge, vilket är hur moduler kommunicerar med varandra.
Varje modul kan ha flera indata- och utdataköer deklarerade i sin kod. Den IoT Edge som körs på enheten dirigerar meddelanden från utdata från en modul till indata för en eller flera moduler. Den specifika koden för att deklarera indata och utdata varierar mellan olika språk, men konceptet är detsamma i alla moduler. Mer information om routning mellan moduler finns i Deklarera vägar.
C#-exempelkoden som medföljer projektmallen använder ModuleClient-klassen från IoT Hub SDK för .NET.
Öppna filen Program.cs, som finns i mappen modules/SampleModule/.
Leta reda på metoden SetInputMessageHandlerAsync i program.cs.
Metoden SetInputMessageHandlerAsync uppsättningar en indatakö för att ta emot inkommande meddelanden. Granska den här metoden och se hur den initierar en indatakö med namnet input1.

Leta sedan reda på metoden SendEventAsync.
Metoden SendEventAsync bearbetar mottagna meddelanden och uppsättningar en utdatakö för att skicka dem vidare. Granska den här metoden och se att den initierar en utdatakö med namnet output1.

Öppna filen deployment.template.json.
Leta reda på modulegenskapen för $edgeAgent önskade egenskaperna.
Det bör finnas två moduler listade här. En är modulen SimulatedTemperatureSensor, som ingår i alla mallar som standard för att tillhandahålla simulerade temperaturdata som du kan använda för att testa dina moduler. Den andra är SampleModule-modulen som du skapade som en del av den här lösningen.
Längst ned i filen hittar du önskade egenskaper för den $edgeHub modulen.
En av funktionerna i IoT Edge hub-modulen är att dirigera meddelanden mellan alla moduler i en distribution. Granska värdena i egenskapen routes. En väg, SampleModuleToIoTHub, använder ett jokertecken (* _) för att ange alla meddelanden som kommer från utdataköer i * sampleModule-modulen. Dessa meddelanden går till _$upstream*, vilket är ett reserverat namn som anger IoT Hub. Den andra vägen, sensorToSampleModule, tar meddelanden som kommer från modulen SimulatedTemperatureSensor och dirigerar dem till indatakön input1 som du såg initierades i SampleModule-koden.

Skapa och push-överföra lösningen
Du har granskat modulkoden och distributionsmallen för att förstå några viktiga distributionsbegrepp. Nu är du redo att skapa containeravbildningen SampleModule och skicka den till containerregistret. Med IoT-verktygstillägget för Visual Studio Code genererar det här steget även distributionsmanifestet baserat på informationen i mallfilen och modulinformationen från lösningsfilerna.
Logga in på Docker
Ange dina autentiseringsuppgifter för containerregistret till Docker så att den kan skicka containeravbildningen som ska lagras i registret.
Öppna den integrerade Visual Studio Code genom att välja Visa > terminal.
Logga in på Docker med autentiseringsuppgifterna för Azure Container Registry som du sparade när du skapade registret.
docker login -u <ACR username> -p <ACR password> <ACR login server>Du kan få en säkerhetsvarning som rekommenderar att du använder
--password-stdin. Även om bästa praxis rekommenderas för produktionsscenarier ligger det utanför omfånget för den här självstudien. Mer information finns i docker-inloggningsreferensen.Logga in på Azure Container Registry
az acr login -n <ACR registry name>
Skapa och push-pusha
Visual Studio Koden har nu åtkomst till containerregistret, så det är dags att omvandla lösningskoden till en containeravbildning.
I Visual Studio Code-utforskaren högerklickar du på filen deployment.template.json och väljer Build and Push IoT Edge Solution (Skapa och push-IoT Edge-lösning).

Build- och push-kommandot startar tre åtgärder. Först skapas en ny mapp i lösningen med namnet config som innehåller det fullständiga distributionsmanifestet, som bygger på information i distributionsmallen och andra lösningsfiler. För det andra körs den
docker buildför att skapa containeravbildningen baserat på lämplig dockerfile för målarkitekturen. Sedan körs den fördocker pushatt push-skicka avbildningsdatabasen till containerregistret.Den här processen kan ta flera minuter första gången, men går snabbare nästa gång du kör kommandona.
Öppna filen deployment.amd64.json i den nyligen skapade konfigurationsmappen. Filnamnet återspeglar målarkitekturen, så det blir annorlunda om du väljer en annan arkitektur.
Observera att de två parametrarna som hade platshållare nu är ifyllda med rätt värden. I avsnittet registryCredentials hämtas ditt användarnamn och lösenord för registret från .env-filen. SampleModule har den fullständiga avbildningsdatabasen med taggen namn, version och arkitektur från filen module.json.
Öppna filen module.json i mappen SampleModule.
Ändra versionsnumret för modulavbildningen. (Versionen, inte $schema-version.) Öka till exempel korrigeringsversionsnumret till 0.0.2 som om vi hade gjort en liten korrigering i modulkoden.
Tips
Modulversioner aktiverar versionskontroll och gör att du kan testa ändringar på en liten uppsättning enheter innan du distribuerar uppdateringar till produktion. Om du inte ökar modulversionen innan du skapar och push-pushar skriver du över lagringsplatsen i containerregistret.
Spara ändringarna i filen module.json.
Högerklicka på filen deployment.template.json igen och välj sedan Build and Push IoT Edge Solution (Skapa och push-IoT Edge lösning).
Öppna filen deployment.amd64.json igen. Observera att en ny fil inte skapades när du körde build- och push-kommandot igen. I stället uppdaterades samma fil för att återspegla ändringarna. SampleModule-avbildningen pekar nu på 0.0.2-versionen av containern.
Om du vill kontrollera vad build- och push-kommandot gjorde går du till Azure Portal och navigerar till containerregistret.
I containerregistret väljer du Lagringsplatsen och sedan samplemodule. Kontrollera att båda versionerna av avbildningen push-skickades till registret.

Felsöka
Om du stöter på fel när du skapar och push-pushar modulavbildningen måste det ofta göra med Docker-konfigurationen på utvecklingsdatorn. Använd följande kontroller för att granska konfigurationen:
- Har du kört kommandot
docker loginmed de autentiseringsuppgifter som du kopierade från containerregistret? De här autentiseringsuppgifterna skiljer sig från de som du använder för att logga in på Azure. - Stämmer containerlagringsplatsen? Har det rätt containerregisternamn och rätt modulnamn? Öppna filen module.json i mappen SampleModule för att kontrollera den. Lagringsplatsens värde bör se <registry name> ut som .azurecr.io/samplemodule.
- Om du använde ett annat namn än SampleModule för din modul, är det namnet konsekvent i hela lösningen?
- Kör datorn samma typ av containrar som du skapar? Den här självstudien är för Linux IoT Edge-enheter, så Visual Studio Code bör säga amd64 eller arm32v7 i sidofältet och Docker Desktop bör köra Linux-containrar.
Distribuera moduler till enhet
Du har kontrollerat att de skapade containeravbildningarna lagras i containerregistret, så det är dags att distribuera dem till en enhet. Kontrollera att din IoT Edge är igång.
I Visual Studio Code-utforskaren, under Azure IoT Hub, expanderar du Enheter för att se din lista över IoT-enheter.
Högerklicka på den IoT Edge enhet som du vill distribuera till och välj sedan Skapa distribution för enskild enhet.

I Utforskaren navigerar du till mappen config och väljer sedan filen deployment.amd64.json.
Använd inte filen deployment.template.json, som inte innehåller autentiseringsuppgifterna för containerregistret eller modulavbildningsvärdena. Om du riktar in dig på en Linux ARM32-enhet får distributionsmanifestet namnet deployment.arm32v7.json.
Under din enhet expanderar du Moduler för att se en lista över distribuerade och körande moduler. Klicka på uppdateringsknappen. Du bör se de nya modulerna SimulatedTemperatureSensor och SampleModule som körs på enheten.
Det kan ta några minuter för modulerna att starta. Den IoT Edge körningen måste ta emot sitt nya distributionsmanifest, hämta modulavbildningarna från containerkörningen och sedan starta varje ny modul.

Visa meddelanden från enheten
SampleModule-koden tar emot meddelanden via sin indatakö och skickar dem genom utdatakön. Distributionsmanifestet deklarerade vägar som skickade meddelanden till SampleModule från SimulatedTemperatureSensor och vidarebefordrade sedan meddelanden från SampleModule till IoT Hub. Med Azure IoT-verktygen Visual Studio Code kan du se meddelanden när de tas emot IoT Hub från dina enskilda enheter.
I Visual Studio Code-utforskaren högerklickar du på den IoT Edge som du vill övervaka och väljer sedan Starta övervakning av inbyggd händelseslutpunkt.
Titta på utdatafönstret i Visual Studio Code för att se meddelanden som kommer till din IoT-hubb.

Visa ändringar på enheten
Om du vill se vad som händer på själva enheten använder du kommandona i det här avsnittet för att granska IoT Edge och moduler som körs på enheten.
Kommandona i det här avsnittet gäller för IoT Edge enhet, inte utvecklingsdatorn. Om du använder en virtuell dator för din IoT Edge ansluter du till den nu. I Azure går du till översiktssidan för den virtuella datorn och väljer Anslut för att få åtkomst till anslutningen till det säkra gränssnittet.
Visa alla moduler som distribuerats till enheten och kontrollera deras status:
iotedge listDu bör se fyra moduler: de två IoT Edge runtime-modulerna SimulatedTemperatureSensor och SampleModule. Alla fyra bör visas som körs.
Granska loggarna för en specifik modul:
iotedge logs <module name>IoT Edge moduler är fallkänsliga.
Loggarna SimulatedTemperatureSensor och SampleModule bör visa de meddelanden som de bearbetar. EdgeAgent-modulen ansvarar för att starta de andra modulerna, så dess loggar innehåller information om hur du implementerar distributionsmanifestet. Om någon modul inte visas eller inte körs kommer edgeAgent-loggarna förmodligen att ha felen. EdgeHub-modulen ansvarar för kommunikationen mellan modulerna och IoT Hub. Om modulerna är igång, men meddelandena inte kommer till din IoT-hubb, kommer edgeHub-loggarna förmodligen att ha felen.
Rensa resurser
Om du planerar att fortsätta med nästa rekommenderade artikel kan du behålla de resurser och konfigurationer som du skapat och använda dem igen. Du kan även fortsätta att använda samma IoT Edge-enhet som en testenhet.
Annars kan du ta bort de lokala konfigurationerna och De Azure-resurser som du använde i den här artikeln för att undvika kostnader.
Ta bort Azure-resurser
Det går inte att ångra borttagningen av Azure-resurser och resursgrupper. Var noga så att du inte tar bort fel resursgrupp eller resurser av misstag. Om du har skapat IoT-hubben i en befintlig resurs grupp som innehåller resurser som du vill behålla, tar du bara bort själva IoT Hub-resursen, inte resurs gruppen.
Ta bort resurser:
Logga in på Azure-portalen och välj Resursgrupper.
Välj namnet på resursgruppen som innehåller dina IoT Edge-testresurser.
Granska listan med resurser som finns i din resurs grupp. Om du vill ta bort alla kan du välja Ta bort resursgrupp. Om du bara vill ta bort några av dem kan du klicka i varje resurs och ta bort dem individuellt.
Nästa steg
I den här självstudien konfigurerade du Visual Studio Code på utvecklingsdatorn och distribuerade din första IoT Edge från den. Nu när du känner till de grundläggande begreppen kan du prova att lägga till funktioner i en modul så att den kan analysera de data som passerar genom den. Välj önskat språk: