Konfigurera Azure IoT Edge för Azure Sphere
Viktigt!
Det här är dokumentationen om Azure Sphere (Legacy). Azure Sphere (Legacy) upphör den 27 september 2027 och användarna måste migrera till Azure Sphere (integrerad) vid den här tiden. Använd versionsväljaren ovanför TOC för att visa dokumentationen om Azure Sphere (integrerad).
Azure IoT Edge tillhandahåller ett filtrerings- och databearbetningslager mellan en nedströmsenhet, till exempel Azure Sphere och Azure IoT Hub. Överväg att använda Azure IoT Edge om din Azure Sphere-enhet producerar en stor mängd data eller data som kräver efterbearbetning.
I det här avsnittet beskrivs stegen för att konfigurera en Azure IoT Edge-enhet med Azure Sphere. Azure Sphere stöder båda versionerna 1.1 och 1.2 av Azure IoT Edge. betydande skillnader noteras i instruktionerna. De största skillnaderna är:
- Paketnamnet har ändrats från
iotedge
tillaziot-edge
. - Standardkonfigurationsfilen har ett nytt namn och en ny plats. I Azure IoT Edge 1.1 var konfigurationsfilen /etc/iotedge/config.yaml. I Azure IoT Edge 1.2 är konfigurationsfilen /etc/aziot/config.toml.
- Azure IoT Edge 1.2 kräver ett fullständigt domännamn (FQDN) som är tillgängligt via en DNS-server i nätverket.
När du har slutfört uppgifterna i det här avsnittet konfigureras din Azure Sphere-enhet för att skicka data till en Azure IoT Hub via en Azure IoT Edge-enhet som fungerar som en transparent gateway. Du kan lägga till ytterligare datafiltrering och bearbetning med en modul på Azure IoT Edge-enheten genom att följa modulguiden för Azure IoT Edge.
Innan du börjar
Stegen i det här avsnittet förutsätter att:
- Din Azure Sphere-enhet är ansluten till datorn via USB.
- Du har en Azure-prenumeration.
- Du har skapat en Azure IoT Hub-instans och etablerat en enhet manuellt. Observera att du måste använda ca-certifikatet för klientorganisationen för IoT Hub senare i proceduren (steg 6).
- Du har skapat en resursgrupp och alla resurser som är relaterade till Azure IoT Hub- och IoT Edge-tjänsterna måste tillhöra den här resursgruppen.
Viktigt!
Även om du kan skapa en Azure-prenumeration utan kostnad kräver registreringsprocessen att du anger ett kreditkortsnummer. Azure tillhandahåller flera nivåer av prenumerationstjänst. Standardnivån, som kräver en månatlig tjänstavgift, väljs som standard när du skapar en Azure IoT Hub-instans. Om du vill undvika en månatlig avgift väljer du den kostnadsfria nivån. Den kostnadsfria nivån innehåller de tjänster som krävs för att använda din enhet med en Azure IoT Hub-instans, inklusive enhetstvillingen. Om du inte har någon Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar.
Översikt
Att konfigurera en Azure IoT Edge-enhet och konfigurera den för att fungera med en Azure Sphere-enhet kräver en process i flera steg och du bör planera cirka 8 timmar för att arbeta igenom stegen, särskilt om du inte är bekant med Azure IoT Edge. Om det här är första gången du arbetar med Azure IoT Edge följer du snabbstartsinstruktionerna i varje avsnitt för att konfigurera en IoT Edge-enhet som körs på en virtuell Linux-dator.
De här stegen måste bara slutföras en gång per Azure Sphere-klientorganisation och Azure IoT Edge-enhet. Varje Azure Sphere-enhet måste dock konfigureras manuellt i Azure IoT Hub och Azure IoT Edge-enheten måste anges som överordnad för Azure Sphere-enheten.
Installationsstegen kan delas in i tre logiska grupper:
Skapa och konfigurera IoT Edge-enheten som en transparent gateway
- Steg 1. Skapa en Azure IoT Edge-enhet.
- Steg 2. Konfigurera Azure IoT Edge-gatewayenheten som en server.
- Steg 3. Öppna Azure IoT Edge-gatewayens enhetsportar för kommunikation.
- Steg 4. Uppdatera gatewayens värdnamn i config.toml (Azure IoT Edge version 1.2) eller config.yaml (Azure IoT Edge version 1.1).
Konfigurera Azure Sphere-enheten i Azure IoT Hub
- Steg 5. Ange Azure IoT Edge-enheten som överordnad för Azure Sphere-enheten.
Upprätta en betrodd anslutning mellan Azure Sphere-enheten och IoT Edge-enheten
- Steg 6. Ange ca-certifikatet för klientorganisationen för Azure Sphere-enheten till Azure IoT Edge-enheten.
- Steg 7. Ange rotcertifikatutfärdarcertifikatet för Azure IoT Edge-enheten till Azure Sphere-enheten.
Steg 1. Skapa en Azure IoT Edge-enhet
Du måste konfigurera en Azure IoT Edge-enhet och registrera den med Azure IoT Hub, om du inte redan har gjort det.
Du kan använda Device Provisioning Service (DPS) för att etablera Azure IoT Edge-enheten. Du kan dock inte använda DPS för att etablera Azure Sphere-enheten. Automatisk etablering av enheter nedströms Azure IoT Edge-enheten med Azure IoT Hub DPS stöds inte.
Du kan följa stegen i snabbstarten för IoT Edge för att konfigurera en Azure IoT Edge-enhet som körs på en virtuell Linux-dator eller En Windows-enhet och registrera den med Azure IoT Hub.
Följ stegen i snabbstarten för att:
- Registrera en Azure IoT Edge-enhet till din Azure IoT Hub-instans. Skapa inte en ny IoT-hubb i det här steget, registrera bara din Azure IoT Edge-enhet till den IoT-hubb som du redan har skapat.
- Installera och starta Azure IoT Edge-körningen på din Azure IoT Edge-enhet.
Kommentar
I snabbstarten för IoT Edge stoppar du innan du distribuerar en modul.
Steg 2. Konfigurera IoT Edge-gatewayenheten som en server
Följ anvisningarna för att konfigurera en Azure IoT Edge-enhet så att den fungerar som en transparent gateway (Azure IoT Edge 1.2) eller Azure IoT Edge 1.1, men stoppa när du når avsnittet "Öppna portar på gatewayenhet". Även om de här instruktionerna beskriver hur du kopierar certifikatfilerna till din IoT Edge-enhet kopierar du inte filerna till den virtuella datorn förrän steg 8 i den här proceduren.
Som en del av de steg som du har slutfört för att konfigurera enhetsgatewayen som en server har du redan:
- Konfigurerade Azure IoT Edge-enhetscertifikaten.
- Distribuerade Azure IoT Edge-hubbmodulen.
- Konfigurerad routning av meddelanden via Azure IoT Edge.
Som en del av de här stegen har du också skapat följande certifikat:
- Rotcertifikatutfärdarcertifikat:
certs/azure-iot-test-only.root.ca.cert.pem
- Certifikat för enhetscertifikatutfärdare och privat nyckel (används för att registrera IoT Edge-enheten till IoT Hub):
certs/iot-edge-device-identity-<cert-name>-full-chain.cert.pem
private/iot-edge-device-identity-<cert-name>.key.pem
- IoT Edge CA-certifikat och privat nyckel (som ska kopieras till en IoT Edge-enhet och refereras i konfigurationsfilen):
certs/iot-edge-device-ca-<cert-name>-full-chain.cert.pem
private/iot-edge-device-ca-<cert-name>.key.pem
Om du följer snabbstarten använder du Linux-instruktionerna för att konfigurera democertifikaten om datorn som du genererar certifikaten på är en Linux-baserad dator. Använd Windows-anvisningarna för att generera democertifikaten om den dator där du genererar certifikaten är en Windows-baserad dator. Se avsnittet om att kopiera rotcertifikat till en virtuell Linux-dator eller till en lokal Windows-dator.
Azure IoT Edge-rotcertifikatutfärdarcertifikatet ändras i steg 7, men du behöver det ursprungliga certifikatet i steg 8. Behåll en kopia av det ursprungliga certifikatet så att du kan återanvända det.
Kommentar
När du uppdaterar certifikatavsnittet i filen config.toml (Azure IoT Edge 1.2) eller config.yaml (Azure IoT Edge 1.1). kontrollera att certificates:
raden i config.toml (Azure IoT Edge 1.2) eller config.yaml (Azure IoT Edge 1.1) inte har något föregående blanksteg och att vart och ett av de kapslade certifikaten är indraget med två blanksteg.
När du har uppdaterat filen kontrollerar du att edgehub-modulen körs på din Azure IoT Edge-enhet:
sudo iotedge list
Mer information finns i Hur en IoT Edge-enhet kan användas som en gateway (Azure IoT Edge 1.2) eller Azure IoT Edge 1.1.
Om du använder testcertifikat stoppar du innan du genererar det underordnade enhetscertifikatet, enligt beskrivningen i Skapa underordnade enhetscertifikat (Azure IoT Edge 1.2) eller Azure IoT Edge 1.1.
Steg 3. Öppna Azure IoT Edge-gatewayenhetsportar för kommunikation
Gatewayenheter måste kunna ta emot meddelanden från sina underordnade enheter. För att ett gatewayscenario ska fungera måste minst ett av IoT-hubbens protokoll som stöds vara öppet för inkommande trafik från underordnade enheter.
Azure Sphere använder protokoll-MQTT. Det här protokollet använder port 8883.
Mer information finns i Öppna portar på gatewayenhet (Azure IoT Edge 1.2) eller Azure IoT Edge 1.1.
Följ dessa steg för att öppna port 8883 på en virtuell Windows-dator när du har konfigurerat en Edge-enhet i snabbstarten:
- Om det behövs loggar du in på din Azure Portal med ditt Azure-konto.
- Navigera till den virtuella dator som du skapade i avsnittet Steg 1: Skapa en Azure IoT Edge-enhet.
- I avsnittet Inställningar till vänster väljer du Nätverk och sedan Lägg till inkommande portregel.
- På bladet Lägg till inkommande portregel under Målportintervall ändrar du värdet till 8883.
- Under Protokoll väljer du TCP.
- Under Namn ändrar du värdet till MQTT.
- Lämna alla andra inställningar som standard och välj sedan Lägg till.
Följ dessa steg för att öppna port 8883 på en virtuell Linux-dator när du har konfigurerat en Azure IoT Edge-enhet i snabbstarten:
Kör följande kommando för att kontrollera om porten för MQTT är öppen:
sudo netstat -lptu
Använd vid behov följande kommando för att öppna porten:
sudo ufw allow 8883
Detta definierar en regel för inkommande säkerhet som tillåter kommunikation för MQTT-protokollet till Azure IoT Edge Gateway.
Steg 4. Uppdatera gatewayens värdnamn
Det här steget använder olika procedurer beroende på vilken version av Azure IoT Edge du använder: Azure IoT Edge 1.2 eller Azure IoT Edge 1.1.
Azure IoT Edge 1.2: Uppdatera gatewayens värdnamn i config.toml
Azure IoT Edge-körningen stöder värdnamn som är mindre än 64 tecken. Fysiska datorer har vanligtvis inte långa värdnamn, men om du använder en virtuell dator som Azure IoT Edge-enhet, som exemplet i snabbstarten, måste du konfigurera värdnamnet manuellt.
Information om hur du felsöker ett ogiltigt värdnamn finns i vanliga felmatchningar.
Följ dessa steg för att konfigurera värdnamnet för Azure IoT Edge-enheten när du har konfigurerat MQTT-porten i snabbstarten:
Hitta det fullständigt kvalificerade domännamnet (FQDN) för din IoT Edge-gateway genom att navigera till din IoT Edge-enhet (virtuell Linux-dator) i Azure-portalen och kopiera värdet för DNS-namn från översiktssidan.
Om det behövs loggar du in på Azure IoT Edge-enheten.
Öppna filen config.toml i en textredigerare.
/etc/aziot/config.toml
Klistra in FQDN i avsnittet värdnamn i config.toml. Kontrollera att namnet är gemener.
hostname: "<iotedge_machinename>.<mydomain>"
Kommentar
Enligt design med Azure IoT Edge v1.2 och senare måste värdnamnet vara ett FQDN-namn (en IP-adress tillåts inte längre, som i v1.1). Därför är en DNS-server med lämplig A-post i samma nätverk obligatorisk.
Starta om daemonen
iotedge
.sudo systemctl restart iotedge
Om du ser fel (färgad text med prefixet "[ERROR]") i statusen granskar du daemonloggarna för detaljerad felinformation.
sudo journalctl -u iotedge --no-pager --no-full
För att undvika varningar konfigurerar du DNS-konfigurationen för moduler på Azure IoT Edge-enheten så att den innehåller en konfigurationsfil på /etc/docker/daemon.json, till exempel:
{ "dns": ["<IP address of your DNS server>"] }
Azure IoT Edge 1.1: Uppdatera gatewayens värdnamn i config.yaml
Azure IoT Edge-körningen stöder värdnamn som är mindre än 64 tecken. Fysiska datorer har vanligtvis inte långa värdnamn, men om du använder en virtuell dator som Azure IoT Edge-enhet, som exemplet i snabbstarten, måste du konfigurera värdnamnet manuellt.
Information om hur du felsöker ett ogiltigt värdnamn finns i vanliga felmatchningar.
Följ dessa steg för att konfigurera värdnamnet för Azure IoT Edge-enheten när du har konfigurerat MQTT-porten i snabbstarten:
I Azure Portal navigerar du till den virtuella datorn. Kopiera värdet för DNS-namnet (FQDN för datorn) från avsnittet Översikt .
Om det behövs loggar du in på Azure IoT Edge-enheten.
Öppna filen config.yaml i en textredigerare.
/etc/iotedge/config.yaml
Klistra in FQDN i avsnittet värdnamn i config.yaml. Kontrollera att namnet är gemener.
`hostname: "<machinename>.<region>.cloudapp.azure.com"`
Kommentar
Du kan behöva använda det tomma datornamnet för värdnamnet (ip-adressen eller det faktiska värdnamnet) om en DNS-matchare finns i nätverket, eftersom Azure Sphere inte stöder netbios.
Starta om daemonen
iotedge
.sudo systemctl restart iotedge
Om du ser fel (färgad text med prefixet "[ERROR]") i statusen granskar du daemonloggarna för detaljerad felinformation.
sudo journalctl -u iotedge --no-pager --no-full
För att undvika varningar konfigurerar du DNS-konfigurationen för moduler på Azure IoT Edge-enheten så att den innehåller en konfigurationsfil på /etc/docker/daemon.json, till exempel:
{ "dns": ["<IP address of your DNS server>"] }
Steg 5. Ange Azure IoT Edge-enheten som överordnad för Azure Sphere-enheten
Följ dessa steg för att ange Azure IoT Edge-enheten som överordnad för Azure Sphere-enheten:
- Gå till Den Azure Sphere-enhet som etablerades manuellt ovan.
- Välj Enhets-ID.
- Välj kugghjulsikonen under Ingen överordnad enhet.
- Välj den Azure IoT Edge-enhet som du vill ange som överordnad.
- Välj OK och sedan Spara.
Azure IoT Edge-enheten blir nu överordnad till Azure Sphere-enheten.
Steg 6. Ange ca-certifikatet för klientorganisationen för Azure Sphere-enheten till IoT Edge-enheten
För att verifiera Azure Sphere-enhetscertifikat måste Azure IoT Edge-enheten ha en egen kopia av klientcertifikatutfärdare.
Ladda ned ca-certifikatet för klientorganisationen om du inte redan har gjort det. Obs! Du bör redan ha slutfört detta som en del av konfigurationen av Azure IoT Hub.
Logga in med din Azure Sphere-inloggning från kommandotolken:
azsphere login
Ladda ned CA-certifikatet för din Azure Sphere-klientorganisation. Det här kommandot laddar ned certifikatet till en fil med namnet CAcertificate.cer i den aktuella arbetskatalogen. Se till att du laddar ned filen till en katalog där du har skrivbehörighet, annars misslyckas nedladdningen. Utdatafilen måste ha ett .cer-tillägg.
azsphere ca-certificate download --destination CAcertificate.cer
Konvertera ca-certifikatet för klientorganisationen till PEM-format. Exempelinstruktioner för att konvertera formatet på en Windows-dator är följande:
- Leta upp sökvägen till certifikatet på datorn och dubbelklicka på certifikatet för att öppna det.
- Öppna fliken Information och välj Kopiera till fil.
- I guiden Certifikatexport väljer du Nästa.
- Välj formatet Base-64-kodad X.509 (CER) och välj sedan Nästa.
- Ange filnamnet för certifikatet som ska exporteras och välj sedan Nästa.
- Välj Slutför för att slutföra guiden.
- Byt namn på den nedladdade certifikatfilen till filnamnstillägget .pem.
Lägg till klientcertifikatet i Azure IoT Edge-rotcertifikatet. Kom ihåg att du skapade Azure IoT Edge-certifikaten i steg 2.
- Om det behövs loggar du in på Azure IoT Edge-enheten.
- Leta upp sökvägen till rotcertifikatutfärdarcertifikatet för IoT Edge-enheten och öppna det i en textredigerare. Om du följde snabbstarten och sedan använde skripten i Azure IoT Edge git-lagringsplatsen för att skapa democertifikat, heter rotcertifikatutfärdarcertifikatet azure-iot-test-only.root.ca.cert.pem.
- Öppna Ca-certifikatet för Azure Sphere-klientorganisationen (i PEM-format) i en textredigerare. Kopiera innehållet och klistra in det i slutet av IoT Edge-rotcertifikatutfärdarcertifikatet.
- Spara ändringarna i Azure IoT Edge-rotcertifikatutfärdarcertifikatet och stäng sedan filen.
- Starta om Azure IoT Edge-enheten. Kör för en Linux Azure IoT Edge-enhet:
sudo systemctl restart iotedge
. - Kontrollera att modulerna körs på din Azure IoT Edge-enhet. Kör för en Linux Azure IoT Edge-enhet:
sudo iotedge list
.
Steg 7. Ange rotcertifikatutfärdarcertifikatet för Azure IoT Edge-enheten till Azure Sphere-enheten
För att verifiera Azure IoT Edge-enhetscertifikaten måste Azure Sphere-enheten (nedströmsenheten) ha en egen kopia av Azure IoT Edge-enhetens rotcertifikatutfärdarcertifikat, som du konfigurerade i steg 2.
Mer information finns i Ansluta en nedströmsenhet till en Azure IoT Edge-gateway.
Leta upp det ursprungliga rotcertifikatet för Azure IoT Edge-enheten.
- Kom ihåg att det ursprungliga rotcertifikatet för Azure IoT Edge-enheten är det som du skapade i steg 2.
- Om du följde snabbstarten och sedan använde skripten i IoT Edge git-lagringsplatsen för att skapa democertifikat kallas rotcertifikatutfärdarcertifikatet azure-iot-test-only.root.ca.cert.pem.
Kopiera Azure IoT Edge-rotcertifikatet till Azure Sphere-enheten genom att lägga till det i programpaketet.
- Detaljerade steg finns i Skapa avbildningspaket.
- Se avsnittet om att kopiera rotcertifikat till en virtuell Linux-dator eller till en lokal Windows-dator.
Steg 8. Kopiera IoT-rotcertifikatet till en fjärrdator
Följ dessa steg för att kopiera Azure IoT Edge-rotcertifikatet till en virtuell Linux-fjärrdator eller till en lokal Windows-dator:
Du kan installera WinSCP-verktyget för att överföra filerna. Verktyget tillhandahåller ett GUI så att det är enklare att använda än en kommandoradsmetod.
Om du vill använda kommandoraden använder du kommandoradsverktyget SCP (Secure Copy).
Om du vill överföra en fil från en lokal Windows-dator till en virtuell Linux-fjärrdator kör du följande kommando i Windows PowerShell:
powershell -Command scp -r <path-to-file-name> <userName@remote-ip>:<path-to-destination-directory>
Exempelsyntax:
scp C:\Documents\cert.pem AzureUser@edgevmname-west.westus22.cloudapp.azure.com:/home/azureUser/test/
Om du vill överföra en fil från en fjärransluten virtuell Linux-dator till en lokal Windows-dator kör du följande kommando i Windows PowerShell:
powershell -Command scp -r <userName@remote-ip>:<path-to-file-name> <path-to-destination-dir>
Exempelsyntax:
scp azureUser@edgevmname-west.westus22.cloudapp.azure.com:/home/azureUser/test/cert.pem C:\Documents\
Felsökning
Om du får problem med att köra Azure IoT Edge i din miljö använder du de här artiklarna för felsökning och diagnostik:
Felsöka din IoT Edge-enhet (Azure IoT Edge 1.2) eller Azure IoT Edge 1.1
Vanliga problem och lösningar för Azure IoT Edge (Azure IoT Edge 1.2) eller Azure IoT Edge 1.1
Nästa steg
- När du har slutfört stegen i det här avsnittet kan du köra Azure IoT-exemplet genom att följa anvisningarna för att ansluta med Azure IoT Edge.