Självstudie: Utveckla IoT Edge moduler med hjälp av Windows containrar
Gäller för:
IoT Edge 1,1
Använd Visual Studio att utveckla och distribuera kod för att Windows enheter som kör IoT Edge.
Anteckning
IoT Edge 1.1 LTS är den senaste versionens kanal som stöder Windows containrar. Från och med version 1.2 Windows inte containrar. Överväg att använda eller flytta IoT Edge för Linux på Windows att köra IoT Edge på Windows enheter.
Den här självstudien går igenom vad som krävs för att utveckla och distribuera din egen kod till IoT Edge enhet. Den här självstudien är en användbar förutsättning 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 exemplet på att distribuera en C#-modul till en Windows enhet. Det här exemplet valdes eftersom det är det vanligaste utvecklingsscenariot. Om du är intresserad av att utveckla på ett annat språk eller planerar att distribuera Azure-tjänster som moduler är den här självstudien fortfarande användbar för att lära dig mer om utvecklingsverktygen. När du förstår utvecklingsbegreppen kan du välja 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 att Visual Studio 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:
- Windows 10 med 1809-uppdateringen eller nyare.
- 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.
- Installera Git.
En Azure IoT Edge enhet på Windows:
- Installera och hantera Azure IoT Edge med Windows containrar.
- Vi rekommenderar att du inte kör IoT Edge på utvecklingsdatorn, utan i stället använder en separat enhet om det är möjligt. 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.
Molnresurser:
- En kostnadsfri IoT-hubb eller 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, är en container som innehåller 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, utföra dataanalys- eller datarensningsåtgärder 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 förstå 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 målenhetens operativsystem (OS). För Windows containerutveckling är det här konceptet enklare eftersom Windows endast körs på Windows operativsystem. Men du kan till exempel använda din Windows för att skapa moduler för Linux IoT Edge enheter. I det scenariot måste du se till att utvecklingsdatorn körde Linux-containrar. 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.
Den här självstudien riktar Windows enheter som kör IoT Edge. Windows IoT Edge enheter använder Windows containrar. Vi rekommenderar att Visual Studio för att utveckla Windows enheter, så det är det som används i den här självstudien. Du kan även Visual Studio Kod, även om det finns skillnader i stöd mellan de två verktygen.
I följande tabell visas de utvecklingsscenarier som stöds för Windows containrar i Visual Studio Code och Visual Studio.
| Visuell Studio-kod | Visual Studio 2017/2019 | |
|---|---|---|
| Azure-tjänster | Azure Functions Azure Stream Analytics |
|
| Språk | C# (felsökning stöds inte) | 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 |
Installera containermotorn
IoT Edge-moduler paketeras som containrar, så du behöver en containermotor på utvecklingsdatorn för att skapa och hantera containrarna. Vi rekommenderar att du använder Docker Desktop för utveckling på grund av dess många funktioner och popularitet som containermotor. Med Docker Desktop på en Windows-dator kan du växla mellan Linux-containrar och Windows-containrar så att du enkelt kan utveckla moduler för olika typer av 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. I den här självstudien använder du Windows containrar. Mer information finns i Växla mellan Windows och Linux-containrar.
Konfigurera Visual Studio och verktyg
IoT-tilläggen för Visual Studio dig 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 installerar du Visual Studio och IoT Edge-tillägget och ställer sedan in ditt Azure-konto för att hantera IoT Hub resurser inifrån Visual Studio.
I den här självstudien lär du dig utvecklingsstegen för Visual Studio 2019. Om du använder Visual Studio 2017 (version 15.7 eller senare) är stegen liknande. Om du hellre vill använda Visual Studio Code kan du läsa anvisningarna i Använda Visual Studio Code för att utveckla och felsöka moduler för Azure IoT Edge.
Förbered Visual Studio 2019 på utvecklingsdatorn.
Om du inte redan har Visual Studio på utvecklingsdatorn installerar du Visual Studio 2019 med följande arbetsbelastningar:
- Azure Development
- Skrivbordsutveckling med C++
- .NET Core plattformsoberoende utveckling
Om du redan har Visual Studio 2019 på utvecklingsdatorn följer du stegen i Ändra Visual Studio för att lägga till de arbetsbelastningar som krävs.
Ladda ned och installera Azure IoT Edge Tools för Visual Studio 2019.
Om du använder Visual Studio 2017 (version 15.7 eller senare) laddar du ned och installerar Azure IoT Edge Tools för Visual Studio 2017.
När dina installationer är klara öppnar du Visual Studio 2019 och väljer Fortsätt utan kod.
Välj Visa > Cloud Explorer.
Välj profilikonen i Cloud Explorer och logga in på ditt Azure-konto om du inte redan är inloggad.
När du har loggat in visas dina Azure-prenumerationer. Expandera den prenumeration som har din IoT-hubb.
Under din prenumeration expanderar du IoT Hubs och sedan din IoT-hubb. Du bör se en lista över dina IoT-enheter och kan använda den här utforskaren för att hantera dem.

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 Edge Tools innehåller projektmallar för alla IoT Edge-modulspråk i Visual Studio. 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.
Välj Arkiv > > Ny Project...
I det nya projektfönstret söker du efter IoT Edge och väljer projektet Azure IoT Edge (Windows amd64). Klicka på Nästa.

I fönstret Konfigurera ditt nya projekt byter du namn på projektet och lösningen till något beskrivande som CSharpTutorialApp. Klicka på Skapa för att skapa projektet.

I fönstret Lägg till modul konfigurerar du projektet med följande värden:
Fält Värde Visual Studio Mall Välj C#-modul. Modulnamn Acceptera standardinställningen IotEdgeModule1. Lagringsplats-URL En bildlagringsplats innehåller namnet på containerregistret och namnet på containeravbildningen. Containeravbildningen är förindelad från modulprojektets namnvärde. 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 sidan Översikt i containerregistret i Azure Portal.
Den slutliga avbildningsdatabasen ser <registry name> ut som .azurecr.io/iotedgemodule1.
Välj Lägg till för att skapa modulen.
När det nya projektet har Visual Studio i fönstret kan du bekanta dig med de filer som det skapade:
- Ett IoT Edge projekt med namnet CSharpTutorialApp.
- Mappen Modules innehåller pekare till de moduler som ingår i projektet. I det här fallet bör det bara vara IotEdgeModule1.
- Den dolda .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.template.json är en mall 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.
Tips
I avsnittet autentiseringsuppgifter för registret fylls adressen i automatiskt från den information som du angav när du skapade lösningen. Men referensvariablerna för användarnamn och lösenord som lagras i .env-filen. Detta är av säkerhetsskäl eftersom .env-filen ignoreras, men distributionsmallen är det inte.
- Ett IoT Edge modulprojekt med namnet IotEdgeModule1.
- Filen program.cs innehåller C#-standardmodulkoden som medföljer projektmallen. Standardmodulen tar indata från en källa och skickar den vidare till IoT Hub.
- Filen module.json innehåller information om modulen, inklusive den fullständiga avbildningsdatabasen, avbildningsversionen och vilken Dockerfile som ska användas för varje plattform som stöds.
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.
Windows-containrar stöds endast i 1.1-versionen för långsiktigt stöd eller i den tidigare 1.0-versionen. Om du vill utveckla moduler för enheter med Windows-containrar uppdaterar du IoT Edge-körningsversionen i Visual Studio så att den matchar IoT Edge-versionen på dessa enheter.
I Solution Explorer högerklickar du på namnet på projektet och väljer Ange IoT Edge körningsversion.
Använd den nedrullningsna menyn för att välja den körningsversion som IoT Edge kör och välj sedan OK för att spara ändringarna.
Generera distributionsmanifestet på nytt med den nya körningsversionen. Högerklicka på namnet på projektet och välj Generera distribution för att IoT Edge.
Ange dina autentiseringsuppgifter för registret till IoT Edge agenten
Körningskörningen IoT Edge dina registerautentiseringsuppgifter för att hämta dina containeravbildningar till IoT Edge enhet. Tillägget IoT Edge försöker hämta information om containerregistret från Azure och fylla i den i distributionsmallen.
Öppna filen deployment.template.json i modullösningen.
Leta reda på egenskapen registryCredentials i $edgeAgent önskade egenskaperna. Din registeradress bör fyllas i automatiskt från den information som du angav när du skapade projektet, och fälten för användarnamn och lösenord ska sedan innehålla variabelnamn. Ett exempel:
"registryCredentials": { "<registry name>": { "username": "$CONTAINER_REGISTRY_USERNAME_<registry name>", "password": "$CONTAINER_REGISTRY_PASSWORD_<registry name>", "address": "<registry name>.azurecr.io" } }Öppna .env-filen i modullösningen. (Den är dold som standard i Solution Explorer, så du kan behöva välja knappen Visa alla filer för att visa den.)
Lägg till värdena 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, till exempel tjänstens huvudnamn. Mer information finns i Hantera åtkomst till containerregistret.
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 sedan 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 för alla moduler. Mer information om routning mellan moduler finns i Deklarera vägar.
C#-exempelkoden som medföljer projektmallen använder Klassen ModuleClient från IoT Hub SDK för .NET.
Leta reda på metoden SetInputMessageHandlerAsync i filen program.cs.
Metoden SetInputMessageHandlerAsync ställer in 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 upp 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 modulen IotEdgeModule1 som du skapade som en del av det här projektet.
Den här modulegenskapen deklarerar vilka moduler som ska ingå i distributionen till din enhet eller dina enheter.
Hitta egenskapen routes för den $edgeHub önskade egenskaperna.
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, IotEdgeModule1ToIoTHub, använder jokertecken (* _) för att inkludera alla meddelanden som kommer från en utdatakö * i IotEdgeModule1-modulen. Dessa meddelanden går till _$upstream*, vilket är ett reserverat namn som anger IoT Hub. Den andra vägen, sensorToIotEdgeModule1, tar meddelanden som kommer från modulen SimulatedTemperatureSensor och dirigerar dem till indatakön input1 för IotEdgeModule1-modulen.

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 IotEdgeModule1 och skicka den till containerregistret. Med IoT-verktygstillägget för Visual Studio 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 på utvecklingsdatorn så att den kan skicka containeravbildningen som ska lagras i registret.
Öppna PowerShell eller en kommandotolk.
Logga in på Docker med autentiseringsuppgifterna för Azure-containerregistret 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.
Skapa och push-pusha
Utvecklingsdatorn har nu åtkomst till containerregistret, och även IoT Edge enheter. Det är dags att omvandla projektkoden till en containeravbildning.
Högerklicka på projektmappen CSharpTutorialApp och välj Skapa och push-IoT Edge Modules.

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.windows-amd64.json i den nyligen skapade config-mappen. (Konfigurationsmappen kanske inte visas i Solution Explorer i Visual Studio. Om så är fallet väljer du ikonen Visa alla filer i Solution Explorer aktivitetsfältet.)
Hitta bildparametern i avsnittet IotEdgeModule1. Observera att avbildningen innehåller den fullständiga avbildningsdatabasen med namn, version och arkitekturtagg från filen module.json.
Öppna filen module.json i mappen IotEdgeModule1.
Ä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å projektmappen CSharpTutorialApp igen och välj Skapa och push-IoT Edge Moduler igen.
Öppna filen deployment.windows-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. IotEdgeModule1-avbildningen pekar nu på 0.0.2-versionen av containern. Den här ändringen i distributionsmanifestet är hur du IoT Edge enheten att det finns en ny version av en modul att hämta.
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 iotedgemodule1. 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 IotEdgeModule1 för att kontrollera. Lagringsplatsens värde bör se <registry name> ut som .azurecr.io/iotedgemodule1.
- Om du använde ett annat namn än IotEdgeModule1 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 Windows IoT Edge enheter, så dina Visual Studio-filer ska ha tillägget windows-amd64 och Docker Desktop bör köra Windows 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.
Öppna Cloud Explorer i Visual Studio och expandera informationen för din IoT-hubb.
Välj namnet på den enhet som du vill distribuera till. I listan Åtgärder väljer du Skapa distribution.

Navigera till mappen config i projektet i Utforskaren och välj filen deployment.windows-amd64.json. Den här filen finns ofta på
C:\Users\<username>\source\repos\CSharpTutorialApp\CSharpTutorialApp\config\deployment.windows-amd64.jsonAnvänd inte filen deployment.template.json, som inte innehåller de fullständiga modulavbildningsvärdena.
Expandera informationen för din IoT Edge i Cloud Explorer för att se modulerna på enheten.
Använd knappen Uppdatera för att uppdatera enhetsstatus för att se att modulerna SimulatedTemperatureSensor och IotEdgeModule1 har distribuerats till din enhet.

Visa meddelanden från enheten
IotEdgeModule1-koden tar emot meddelanden via sin indatakö och skickar dem genom utdatakön. Distributionsmanifestet deklarerade vägar som skickade meddelanden från SimulatedTemperatureSensor till IotEdgeModule1 och vidarebefordrade sedan meddelanden från IotEdgeModule1 till IoT Hub. Med Azure IoT Edge verktyg för Visual Studio kan du se meddelanden när de tas emot IoT Hub från dina enskilda enheter.
I Visual Studio Cloud Explorer väljer du namnet på den IoT Edge som du distribuerade till.
I menyn Åtgärder väljer du Starta övervakning av inbyggd händelseslutpunkt.
Titta på avsnittet Utdata i Visual Studio att se meddelanden som kommer till din IoT-hubb.
Det kan ta några minuter för båda 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 ä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 är för IoT Edge enheten, 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 fjärrskrivbordsanslutningen. Öppna ett kommando eller Ett PowerShell-fönster på enheten för att köra iotedge kommandona.
Visa alla moduler som distribuerats till din enhet och kontrollera deras status:
iotedge listDu bör se fyra moduler: de två IoT Edge runtime-modulerna SimulatedTemperatureSensor och IotEdgeModule1. 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 IotEdgeModule1 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 2019 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: