Dela via


Uppdatera IoT Edge

Gäller för: Ja-ikon IoT Edge 1.1

Viktigt!

IoT Edge 1.1 slutdatum för support 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.

När IoT Edge-tjänsten släpper nya versioner vill du uppdatera dina IoT Edge-enheter för de senaste funktionerna och säkerhetsförbättringarna. Den här artikeln innehåller information om hur du uppdaterar dina IoT Edge-enheter när en ny version är tillgänglig.

Två logiska komponenter i en IoT Edge-enhet måste uppdateras om du vill flytta till en nyare version. Den första är säkerhetsundersystemet. Även om arkitekturen för säkerhetsundersystemet ändrades mellan version 1.1 och 1.2, förblev dess övergripande ansvar detsamma. Den körs på enheten, hanterar säkerhetsbaserade uppgifter och startar modulerna när enheten startar. För närvarande kan säkerhetsundersystemet bara uppdateras från själva enheten. Den andra komponenten är körningen, som består av IoT Edge-hubben och IoT Edge-agentmodulerna. Beroende på hur du strukturerar distributionen kan körningen uppdateras från enheten eller via fjärranslutning.

Du bör uppdatera IoT Edge-körnings- och programlagren med samma versionsversion. Även om felmatchade versioner stöds testas de inte tillsammans. Använd följande avsnitt i den här artikeln för att uppdatera både körnings- och programskikten på en enhet:

  1. Uppdatera säkerhetsundersystemet
  2. Uppdatera körningscontainrarna
  3. Kontrollera att versionerna matchar
    • På enheten använder du iotedge version för att kontrollera säkerhetsundersystemversionen. Utdata innehåller versionsnummer för huvudversioner, delversioner och revisioner. Till exempel iotedge 1.4.2.
    • I inställningarna för enhetsdistributionskörning kontrollerar du att edgehub - och edgeagent-avbildnings-URI-versionerna matchar huvud- och delversionen av säkerhetsundersystemet. Om säkerhetsundersystemversionen är 1.4.2 blir avbildningsversionerna 1.4. Till exempel mcr.microsoft.com/azureiotedge-hub:1.4 och mcr.microsoft.com/azureiotedge-agent:1.4.

Information om hur du hittar den senaste versionen av Azure IoT Edge finns i Azure IoT Edge-versioner.

Uppdatera säkerhetsundersystemet

IoT Edge-säkerhetsundersystemet innehåller en uppsättning inbyggda komponenter som måste uppdateras med hjälp av pakethanteraren på IoT Edge-enheten.

Kontrollera vilken version av säkerhetsundersystemet som körs på enheten med hjälp av kommandot iotedge version. Om du använder IoT Edge för Linux i Windows måste du SSH till den virtuella Linux-datorn för att kontrollera versionen.

Viktigt!

Om du uppdaterar en enhet från version 1.0 eller 1.1 till den senaste versionen finns det skillnader i installation och konfigurationsprocesser som kräver extra steg. Mer information finns i stegen senare i den här artikeln: Specialfall: Uppdatera från 1.0 eller 1.1 till den senaste versionen.

På Linux x64-enheter använder du apt-get eller lämplig pakethanterare för att uppdatera runtime-modulen till den senaste versionen.

Uppdatera apt.

sudo apt-get update

Kommentar

Anvisningar för att hämta den senaste lagringsplatsens konfiguration från Microsoft finns i de preliminära stegen för att installera IoT Edge.

Kontrollera vilka versioner av IoT Edge som är tillgängliga.

apt list -a iotedge

Om du vill uppdatera till den senaste versionen av runtime-modulen använder du följande kommando, som även uppdaterar libiothsm-std till den senaste versionen:

sudo apt-get install iotedge

Om du vill uppdatera till en viss version av runtime-modulen anger du versionen från apt-listans utdata. När iotedge uppdateras försöker det automatiskt uppdatera paketet libiothsm-std till den senaste versionen, vilket kan orsaka en beroendekonflikt. Om du inte går till den senaste versionen måste du rikta in dig på båda paketen för samma version. Följande kommando installerar till exempel en specifik version av 1.1-versionen:

sudo apt-get install iotedge=1.1.1 libiothsm-std=1.1.1

Om den version som du vill installera inte är tillgänglig via apt-get kan du använda curl för att rikta alla versioner från lagringsplatsen för IoT Edge-versioner . Leta upp lämpliga libiothsm-std - och iotedge-filer för enheten för den version som du vill installera. Högerklicka på fillänken för varje fil och kopiera länkadressen. Använd länkadressen för att installera de specifika versionerna av dessa komponenter:

curl -L <libiothsm-std link> -o libiothsm-std.deb && sudo apt-get install ./libiothsm-std.deb
curl -L <iotedge link> -o iotedge.deb && sudo apt-get install ./iotedge.deb

Använd sedan konfigurationen igen för att säkerställa att systemet uppdateras fullständigt.

sudo iotedge config apply

Uppdatera körningscontainrarna

Hur du uppdaterar IoT Edge-agenten och IoT Edge-hubbcontainrarna beror på om du använder rullande taggar (t.ex. 1.1) eller specifika taggar (t.ex. 1.1.1) i distributionen.

Kontrollera vilken version av IoT Edge-agenten och IoT Edge-hubbmodulerna som för närvarande finns på enheten med hjälp av kommandona iotedge logs edgeAgent eller iotedge logs edgeHub. Om du använder IoT Edge för Linux i Windows måste du SSH till den virtuella Linux-datorn för att kontrollera körningsmodulversionerna.

Hitta containerversionen i loggar

Förstå IoT Edge-taggar

IoT Edge-agenten och IoT Edge-hubbens avbildningar taggas med den IoT Edge-version som de är associerade med. Det finns två olika sätt att använda taggar med körningsavbildningarna:

  • Rullande taggar – Använd endast de två första värdena i versionsnumret för att hämta den senaste bilden som matchar dessa siffror. Till exempel uppdateras 1.1 när det finns en ny version som pekar på den senaste 1.1.x-versionen. Om containerkörningen på IoT Edge-enheten hämtar avbildningen igen uppdateras runtime-modulerna till den senaste versionen. Distributioner från Azure-portalen är standard för löpande taggar. Den här metoden föreslås i utvecklingssyfte.

  • Specifika taggar – Använd alla tre värdena i versionsnumret för att uttryckligen ange avbildningsversionen. Till exempel ändras inte 1.1.0 efter den första versionen. Du kan deklarera ett nytt versionsnummer i distributionsmanifestet när du är redo att uppdatera. Den här metoden föreslås i produktionssyfte.

Uppdatera en rullande taggbild

Om du använder löpande taggar i distributionen (till exempel mcr.microsoft.com/azureiotedge-hub:1.1) måste du tvinga containerkörningen på enheten att hämta den senaste versionen av avbildningen.

Ta bort den lokala versionen av avbildningen från din IoT Edge-enhet. Om du avinstallerar säkerhetsundersystemet på Windows-datorer tas även körningsavbildningarna bort, så du behöver inte ta det här steget igen.

docker rmi mcr.microsoft.com/azureiotedge-hub:1.1
docker rmi mcr.microsoft.com/azureiotedge-agent:1.1

Du kan behöva använda force-flaggan -f för att ta bort bilderna.

IoT Edge-tjänsten hämtar de senaste versionerna av körningsavbildningarna och startar dem automatiskt på enheten igen.

Uppdatera en specifik taggbild

Om du använder specifika taggar i distributionen (till exempel mcr.microsoft.com/azureiotedge-hub:1.1.1) behöver du bara uppdatera taggen i distributionsmanifestet och tillämpa ändringarna på enheten.

  1. I IoT Hub i Azure-portalen väljer du din IoT Edge-enhet och väljer Ange moduler.

  2. I avsnittet IoT Edge-moduler väljer du Körningsinställningar.

    Konfigurera körningsinställningar

  3. I Körningsinställningar uppdaterar du avbildningsvärdet för Edge Hub med önskad version. Välj inte Spara än.

    Uppdatera Edge Hub Image-version

  4. Dölj Edge Hub-inställningarna eller rulla nedåt och uppdatera avbildningsvärdet för Edge Agent med samma önskade version.

    Uppdatera Edge Hub Agent-versionen

  5. Välj Spara.

  6. Välj Granska + skapa, granska distributionen och välj Skapa.

Specialfall: Uppdatera från 1.0 eller 1.1 till den senaste versionen

Från och med version 1.2 använder IoT Edge-tjänsten ett nytt paketnamn och har vissa skillnader i installation och konfigurationsprocesser. Om du har en IoT Edge-enhet som kör version 1.0 eller 1.1 använder du dessa instruktioner för att lära dig hur du uppdaterar till den senaste versionen.

Några av de viktigaste skillnaderna mellan den senaste versionen och version 1.1 och tidigare är:

  • Paketnamnet har ändrats från iotedge till aziot-edge.
  • Libiothsm-std-paketet används inte längre. Om du använde standardpaketet som tillhandahålls som en del av IoT Edge-versionen kan dina konfigurationer överföras till den nya versionen. Om du har använt en annan implementering av libiothsm-std måste eventuella användartilldelade certifikat som enhetsidentitetscertifikatet, enhetscertifikatutfärdare och förtroendepaket konfigureras om.
  • En ny identitetstjänst, aziot-identity-service , introducerades som en del av 1.2-versionen. Den här tjänsten hanterar identitetsetablering och hantering för IoT Edge och för andra enhetskomponenter som behöver kommunicera med IoT Hub, till exempel Enhetsuppdatering för IoT Hub.
  • Standardkonfigurationsfilen har ett nytt namn och en ny plats. /etc/iotedge/config.yamlTidigare förväntas enhetens konfigurationsinformation nu vara i /etc/aziot/config.toml som standard. Kommandot iotedge config import kan användas för att migrera konfigurationsinformation från den gamla platsen och syntaxen till den nya.
    • Importkommandot kan inte identifiera eller ändra åtkomstregler till en enhets betrodda plattformsmodul (TPM). Om enheten använder TPM-attestering måste du manuellt uppdatera filen /etc/udev/rules.d/tpmaccess.rules för att ge åtkomst till aziottpm-tjänsten. Mer information finns i Ge IoT Edge åtkomst till TPM.
  • Arbetsbelastnings-API:et i den senaste versionen sparar krypterade hemligheter i ett nytt format. Om du uppgraderar från en äldre version till den senaste versionen importeras den befintliga huvudkrypteringsnyckeln. Arbetsbelastnings-API:et kan läsa hemligheter som sparats i tidigare format med hjälp av den importerade krypteringsnyckeln. Arbetsbelastnings-API:et kan dock inte skriva krypterade hemligheter i det gamla formatet. När en hemlighet har krypterats om av en modul sparas den i det nya formatet. Hemligheter som krypterats i den senaste versionen kan inte läsas av samma modul i version 1.1. Om du bevarar krypterade data till en värdmonterad mapp eller volym skapar du alltid en säkerhetskopia av data innan du uppgraderar för att behålla möjligheten att nedgradera om det behövs.
  • För bakåtkompatibilitet när du ansluter enheter som inte stöder TLS 1.2 kan du konfigurera Edge Hub att fortfarande acceptera TLS 1.0 eller 1.1 via miljövariabeln SslProtocols. Observera att stöd för TLS 1.0 och 1.1 i IoT Hub betraktas som äldre och kan även tas bort från Edge Hub i framtida versioner. Undvik framtida problem genom att använda TLS 1.2 som den enda TLS-versionen när du ansluter till Edge Hub eller IoT Hub.
  • Förhandsversionen av den experimentella MQTT-koordinatorn i Edge Hub 1.2 har avslutats och ingår inte i Edge Hub 1.3 eller senare. Vi fortsätter att förfina våra planer för en MQTT-mäklare baserat på feedback som mottagits. Om du behöver en standardkompatibel MQTT-koordinator på IoT Edge kan du under tiden överväga att distribuera en asynkron meddelandekö med öppen källkod som Mosquitto som en IoT Edge-modul.
  • Från och med version 1.2, när en bakgrundsavbildning tas bort från en container, fortsätter containern att köras och den bevaras vid omstarter. I 1.1, när en bakgrundsavbildning tas bort, återskapas containern omedelbart och bakgrundsavbildningen uppdateras.

Innan du automatiserar några uppdateringsprocesser kontrollerar du att det fungerar på testdatorer.

När du är klar följer du de här stegen för att uppdatera IoT Edge på dina enheter:

  1. Uppdatera apt.

    sudo apt-get update
    
  2. Avinstallera den tidigare versionen av IoT Edge och lämna konfigurationsfilerna på plats.

    sudo apt-get remove iotedge
    
  3. Installera den senaste versionen av IoT Edge, tillsammans med IoT-identitetstjänsten och Microsoft Defender för IoT-mikroagenten för Edge.

    sudo apt-get install aziot-edge defender-iot-micro-agent-edge
    

Vi rekommenderar att du installerar mikroagenten med Edge-agenten för att aktivera säkerhetsövervakning och härdning av dina Edge-enheter. Mer information om Microsoft Defender för IoT finns i Vad är Microsoft Defender för IoT för enhetsbyggare?

  1. Importera den gamla filen config.yaml till det nya formatet och använd konfigurationsinformationen.

    sudo iotedge config import
    

Nu när IoT Edge-tjänsten som körs på dina enheter har uppdaterats följer du stegen i den här artikeln för att även uppdatera körningscontainrarna.

Nästa steg

Visa de senaste Versionerna av Azure IoT Edge.

Håll dig uppdaterad med de senaste uppdateringarna och meddelandena i Sakernas Internet-blogg