Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
              gäller för:
 IoT Edge 1.1
Viktigt!
IoT Edge 1.1 supportdatumet upphör var den 13 december 2022. I informationen om Microsoft-produktens livscykel hittar du fler uppgifter om vilken support som gäller för denna produkt, tjänst, teknik eller detta API. Mer information om hur du uppdaterar till den senaste versionen av IoT Edge finns i Uppdatera IoT Edge-.
I den här artikeln konfigurerar vi en virtuell Azure-dator som kör Linux som en Azure IoT Edge-enhet som fungerar som en transparent gateway. Med en transparent gatewaykonfiguration kan enheter ansluta till Azure IoT Hub via gatewayen utan att veta att gatewayen finns. Samtidigt är en användare som interagerar med enheterna i IoT Hub omedveten om den mellanliggande gatewayenheten. I slutändan lägger vi till gränsanalys i vårt system genom att lägga till IoT Edge-moduler till den transparenta gatewayen.
Anmärkning
Begreppen i den här självstudien gäller för alla versioner av IoT Edge, men exempelenheten som du skapar för att testa scenariot kör IoT Edge version 1.1.
Stegen i den här artikeln utförs vanligtvis av en molnutvecklare.
I det här avsnittet av självstudien lär du dig att:
- Skapa certifikat så att gatewayenheten kan ansluta säkert till dina underordnade enheter.
 - Skapa en IoT Edge-enhet.
 - Skapa en virtuell Azure-dator för att simulera din IoT Edge-enhet.
 
Förutsättningar
Den här artikeln är en del av en serie för en självstudie om hur du använder Azure Machine Learning på IoT Edge. Varje artikel i serien bygger på arbetet i föregående artikel. Om du har kommit direkt till den här artikeln kan du läsa den första artikeln i serien.
Skapa certifikat
För att en enhet ska fungera som en gateway måste den ansluta på ett säkert sätt till underordnade enheter. Med IoT Edge kan du använda en offentlig nyckelinfrastruktur (PKI) för att konfigurera säkra anslutningar mellan enheter. I det här fallet tillåter vi att en nedströms-IoT-enhet ansluter till en IoT Edge-enhet som fungerar som en transparent gateway. För att upprätthålla rimlig säkerhet bör den underordnade enheten bekräfta identiteten för IoT Edge-enheten. Mer information om hur IoT Edge-enheter använder certifikat finns i Användningsinformation för Azure IoT Edge-certifikat.
I det här avsnittet skapar vi självsignerade certifikat med hjälp av en Docker-avbildning som vi sedan skapar och kör. Vi valde att använda en Docker-avbildning för att slutföra det här steget eftersom det minskar antalet steg som krävs för att skapa certifikaten på Windows-utvecklingsdatorn. Information om vad vi automatiserade med Docker-avbildningen finns i Skapa democertifikat för att testa IoT Edge-enhetsfunktioner.
Logga in på den virtuella utvecklingsdatorn.
Skapa en ny mapp med sökvägen och namnet c:\edgeCertificates.
Om den inte redan körs startar du Docker för Windows från Start-menyn i Windows.
Öppna Visual Studio Code.
Välj Öppna mapp> och välj sedan C:\source\IoTEdgeAndMlSample\CreateCertificates.
I explorer-fönstret högerklickar du på dockerfile och väljer Skapa avbildning.
I dialogrutan accepterar du standardvärdet för avbildningsnamnet och taggen: createcertificates: latest.
              
            Vänta tills bygget har slutförts.
Anmärkning
Du kan se en varning om en offentlig nyckel som saknas. Det är säkert att ignorera den här varningen. På samma sätt visas en säkerhetsvarning som rekommenderar att du kontrollerar eller återställer behörigheter för avbildningen, vilket är säkert att ignorera för den här avbildningen.
I terminalfönstret i Visual Studio Code kör du containern createcertificates.
docker run --name createcertificates --rm -v c:\edgeCertificates:/edgeCertificates createcertificates /edgeCertificatesDocker frågar efter åtkomst till c:\- enheten. Välj Dela den.
Ange dina autentiseringsuppgifter när du uppmanas att göra det.
När containern har körts kontrollerar du följande filer i c:\edgeCertificates:
- c:\edgeCertificates\certs\azure-iot-test-only.root.ca.cert.pem
 - c:\edgeCertificates\certs\new-edge-device-full-chain.cert.pem
 - c:\edgeCertificates\certs\new-edge-device.cert.pem
 - c:\edgeCertificates\certs\new-edge-device.cert.pfx
 - c:\edgeCertificates\private\new-edge-device.key.pem
 
Ladda upp certifikat till Azure Key Vault
För att lagra våra certifikat på ett säkert sätt och göra dem tillgängliga från flera enheter laddar vi upp certifikaten till Azure Key Vault. Som du ser i föregående lista har vi två typer av certifikatfiler: PFX och PEM. Vi behandlar PFX-filen som Key Vault-certifikat som ska laddas upp till Key Vault. PEM-filerna är oformaterad text och vi behandlar dem som Key Vault-hemligheter. Vi använder Key Vault-instansen som är associerad med den Azure Machine Learning-arbetsyta som vi skapade genom att köra Jupyter Notebooks.
Från Azure-portalen går du till din Azure Machine Learning-arbetsyta.
På översiktssidan för Machine Learning-arbetsytan hittar du namnet på Key Vault.
              
            Ladda upp certifikaten till Key Vault på utvecklingsdatorn. Ersätt <subscriptionId> och <keyvaultname> med din resursinformation.
c:\source\IoTEdgeAndMlSample\CreateCertificates\upload-keyvaultcerts.ps1 -SubscriptionId <subscriptionId> -KeyVaultName <keyvaultname>Logga in på Azure om du uppmanas att göra det.
Skriptet körs i några minuter med utdata som visar de nya Key Vault-posterna.
              
            
Registrera en IoT Edge-enhet
För att ansluta en Azure IoT Edge-enhet till en IoT-hubb registrerar vi först en enhet i hubben. Vi tar anslutningssträngen från enhetsidentiteten i molnet och använder den för att konfigurera körningen på vår IoT Edge-enhet. När en konfigurerad enhet har anslutit till hubben kan vi distribuera moduler och skicka meddelanden. Vi kan också ändra konfigurationen av den fysiska IoT Edge-enheten genom att ändra dess motsvarande enhetsidentitet i IoT Hub.
I den här självstudien registrerar vi den nya enhetsidentiteten med hjälp av Visual Studio Code. Du kan också utföra de här stegen med hjälp av Azure-portalen eller Azure CLI. Oavsett vilken metod du väljer kontrollerar du att du hämtar enhetsanslutningssträngen för din IoT Edge-enhet. Enhetsanslutningssträngen finns på informationssidan för din enhet på Azure-portalen.
Öppna Visual Studio Code på utvecklingsdatorn.
Expandera Azure IoT Hub-panelen från Explorer-vyn i Visual Studio Code.
Välj ellipsen och välj Skapa IoT Edge-enhet.
Ge enheten ett namn. För enkelhetens skull använder vi namnet aaTurbofanEdgeDevice så att det sorteras högst upp på de listade enheterna.
Den nya enheten visas i listan över enheter.
              
            
Distribuera en virtuell Azure-dator
Vi använder en virtuell Ubuntu 18.04 LTS-dator med Azure IoT Edge-körningen installerad och konfigurerad. Distributionen använder en Azure Resource Manager-mall som underhålls på projektlagringsplatsen iotedge-vm-deploy . Den etablerar den IoT Edge-enhet som du registrerade i föregående steg med hjälp av anslutningssträngen som du anger i mallen.
Du kan distribuera den virtuella datorn med hjälp av Azure-portalen eller Azure CLI. Vi visar Stegen i Azure-portalen. Mer information finns i Köra Azure IoT Edge på virtuella Ubuntu-datorer .
Distribuera med hjälp av knappen Distribuera till Azure
Om du vill använda
iotedge-vm-deployARM-mallen för att distribuera din virtuella Ubuntu 18.04 LTS-dator klickar du på knappen nedan:I det nyligen lanserade fönstret fyller du i de tillgängliga formulärfälten.
Fält Beskrivning Prenumeration Den aktiva Azure-prenumerationen som den virtuella datorn ska distribueras till. resursgrupp En befintlig eller nyligen skapad resursgrupp som ska innehålla den virtuella datorn och dess associerade resurser. DNS-etikettprefix Ett obligatoriskt värde som du väljer som används för att prefixera värdnamnet för den virtuella datorn. Administratörsanvändarnamn Ett användarnamn som kommer att ges rotbehörighet vid distribution. Enhetens anslutningssträng En enhetens anslutningssträng för en enhet som skapades inom din avsedda IoT Hub. VM-storlek Storleken på den virtuella dator som ska distribueras Ubuntu OS-version Den version av Ubuntu-operativsystemet som ska installeras på den virtuella basdatorn. Plats Den geografiska region som den virtuella datorn ska distribueras till, det här värdet är som standard platsen för den valda resursgruppen. autentiseringstyp Välj sshPublicKey eller lösenord beroende på vad du föredrar. Administratörslösenord eller -nyckel Värdet för den offentliga SSH-nyckeln eller lösenordets värde beroende på valet av autentiseringstyp. När alla fält har fyllts i markerar du kryssrutan längst ned på sidan för att acceptera villkoren och väljer Granska + skapa och Skapa för att påbörja distributionen.
Gå till den virtuella datorn i Azure-portalen. Du hittar den via resursgruppen eller genom att välja Virtuella datorer under Azure-tjänster på portalens landningssida.
Anteckna DNS-namnet på den virtuella datorn. Du behöver den för att logga in på den virtuella datorn.
Ansluta till din IoT Edge-enhet
Öppna en kommandotolk och använd följande kommando för att logga in på den virtuella datorn. Ange din egen information för användarnamn och DNS-namn baserat på föregående avsnitt.
ssh <adminUsername>@<DNS_name>När du uppmanas att verifiera värdens äkthet anger du ja och trycker på Retur.
Ange ditt lösenord när du uppmanas att göra det.
Ubuntu visar ett välkomstmeddelande och sedan bör du se en uppmaning som
<username>@<machinename>:~$.
Ladda ned Key Vault-certifikat
Tidigare i den här artikeln laddade vi upp certifikat till Key Vault för att göra dem tillgängliga för vår IoT Edge-enhet och vår underordnade enhet. Den underordnade enheten använder IoT Edge-enheten som en gateway för att kommunicera med IoT Hub.
Vi tar itu med den underordnade enheten senare i självstudien. I det här avsnittet laddar du ned certifikaten till IoT Edge-enheten.
Logga in på Azure med Azure CLI från SSH-sessionen på den virtuella Linux-datorn.
az loginDu uppmanas att öppna en webbläsare till en inloggningssida för Microsoft-enheter och ange en unik kod. Du kan utföra de här stegen på den lokala datorn. Stäng webbläsarfönstret när du är klar med autentiseringen.
När du har autentiserats loggar den virtuella Linux-datorn in och visar en lista över dina Azure-prenumerationer.
Ange den Azure-prenumeration som du vill använda för Azure CLI-kommandon.
az account set --subscription <subscriptionId>Skapa en katalog på den virtuella datorn för certifikaten.
sudo mkdir /edgeMlCertificatesLadda ned de certifikat som du lagrade i nyckelvalvet: new-edge-device-full-chain.cert.pem, new-edge-device.key.pem och azure-iot-test-only.root.ca.cert.pem.
key_vault_name="<key vault name>" sudo az keyvault secret download --vault-name $key_vault_name --name new-edge-device-full-chain-cert-pem -f /edgeMlCertificates/new-edge-device-full-chain.cert.pem sudo az keyvault secret download --vault-name $key_vault_name --name new-edge-device-key-pem -f /edgeMlCertificates/new-edge-device.key.pem sudo az keyvault secret download --vault-name $key_vault_name --name azure-iot-test-only-root-ca-cert-pem -f /edgeMlCertificates/azure-iot-test-only.root.ca.cert.pem
Uppdatera enhetskonfigurationen för IoT Edge
IoT Edge-körningen använder filen /etc/iotedge/config.yaml för att bevara konfigurationen. Vi måste uppdatera två delar av informationen i den här filen:
- Certifikat: De certifikat som ska användas för anslutningar som görs med underordnade enheter
 - Värdnamn: Det fullständigt kvalificerade domännamnet (FQDN) för den virtuella datorns IoT Edge-enhet
 
Uppdatera certifikaten och värdnamnet genom att redigera filen config.yaml direkt.
Öppna filen config.yaml.
sudo nano /etc/iotedge/config.yamlUppdatera certifikatavsnittet i filen config.yaml genom att ta bort inledande # och ange sökvägen så att filen ser ut som i följande exempel:
certificates: device_ca_cert: "/edgeMlCertificates/new-edge-device-full-chain.cert.pem" device_ca_pk: "/edgeMlCertificates/new-edge-device.key.pem" trusted_ca_certs: "/edgeMlCertificates/azure-iot-test-only.root.ca.cert.pem"Kontrollera att raden certifikaten: inte har något föregående tomt utrymme och att vart och ett av de kapslade certifikaten är indraget med två blanksteg.
Om du högerklickar i nano klistras innehållet i Urklipp in i den aktuella markörens position. Om du vill ersätta strängen använder du tangentbordspilarna för att gå till strängen som du vill ersätta, ta bort strängen och högerklicka sedan för att klistra in från bufferten.
I Azure-portalen går du till den virtuella datorn. Kopiera DNS-namnet (FQDN för datorn) från avsnittet Översikt .
Klistra in FQDN i avsnittet värdnamn i config.yml-filen. Kontrollera att hela namnet är i gemener.
hostname: '<machinename>.<region>.cloudapp.azure.com'Spara och stäng filen genom att välja Ctrl+X, Y och Retur.
Starta om IoT Edge-daemonen.
sudo systemctl restart iotedgeKontrollera statusen för IoT Edge-daemonen. Efter kommandot anger du :q för att avsluta.
systemctl status iotedge
Felsökning
Om du ser fel (färgad text med prefixet "[ERROR]") i statusen granskar du daemonloggarna för detaljerad felinformation.
journalctl -u iotedge --no-pager --no-full
Mer information om hur du åtgärdar fel finns på felsökningssidan .
Rensa resurser
Den här handledningen är en del av en serie där varje artikel bygger vidare på det arbete som gjorts i de föregående. Vänta med att rensa dina resurser tills du har slutfört den sista lektionen.
Nästa steg
Vi har precis slutfört konfigurationen av en virtuell Azure-dator som en transparent IoT Edge-gateway. Vi började med att generera testcertifikat som vi laddade upp till Key Vault. Därefter använde vi ett skript och en Resource Manager-mall för att distribuera den virtuella datorn med Ubuntu Server 16.04 LTS + Azure IoT Edge-körningsavbildningen från Azure Marketplace. När den virtuella datorn är igång anslöt vi via SSH. Sedan loggade vi in på Azure och laddade ned certifikat från Key Vault. Vi har gjort flera uppdateringar av konfigurationen av IoT Edge-körningen genom att uppdatera filen config.yaml.
Fortsätt till nästa artikel för att skapa IoT Edge-moduler.