Dela via


Självstudie: Enhetsuppdatering för Azure IoT Hub med hjälp av Ubuntu-simulatorreferensagenten (18.04 x64)

Den här självstudien visar en avbildningsbaserad uppdatering från slutpunkt till slutpunkt med enhetsuppdatering för IoT Hub. Enhetsuppdatering för Azure IoT Hub stöder avbildningsbaserade, paketbaserade och skriptbaserade uppdateringar.

Avbildningsuppdateringar ger högre förtroende för enhetens sluttillstånd. Det är vanligtvis enklare att replikera resultatet av en avbildningsuppdatering mellan en förproduktionsmiljö och en produktionsmiljö eftersom det inte innebär samma utmaningar som att hantera paket och deras beroenden. På grund av deras atomära natur kan du också enkelt använda en A/B-redundansmodell.

I den här självstudien får du lära dig att:

  • Tilldela en IoT-enhet till en enhetsuppdateringsgrupp med hjälp av taggar.
  • Ladda ned och installera en avbildning.
  • Importera en uppdatering.
  • Distribuera en avbildningsuppdatering.
  • Övervaka uppdateringsdistributionen.

Förutsättningar

  • Skapa ett konto för enhetsuppdatering och en instans som konfigurerats med en IoT-hubb.

  • Ha en Ubuntu 18.04-enhet. Den här enheten kan vara antingen fysisk eller en virtuell dator.

  • Ladda ned zip-filen med namnet Tutorial_Simulator.zip från Release Assets i den senaste versionen och packa upp den.

    Om testenheten skiljer sig från utvecklingsdatorn laddar du ned zip-filen till båda.

    Du kan använda wget för att ladda ned zip-filen. Ersätt <release_version> med den senaste versionen, till exempel 1.0.0.

    wget https://github.com/Azure/iot-hub-device-update/releases/download/<release_version>/Tutorial_Simulator.zip
    

Registrera en enhet och konfigurera en modulidentitet

Lägg till en enhet i enhetsregistret i din IoT-hubb. Alla enheter som ansluter till IoT Hub måste registreras.

I det här avsnittet skapar vi också en modulidentitet. Moduler är oberoende identiteter för komponenter som finns på en IoT-enhet, vilket möjliggör finare kornighet när du har en IoT-enhet som kör flera processer. I den här självstudien använder du den här modulidentiteten för enhetsuppdateringsagenten som körs på IoT-enheten. Mer information finns i Förstå och använda modultvillingar i IoT Hub.

  1. Gå till din IoT-hubb från Azure Portal.
  2. Välj Enheter i det vänstra fönstret. Välj sedan Lägg till enhet.
  3. Under Enhets-ID anger du ett namn på enheten. Kontrollera att kryssrutan Generera nycklar automatiskt är markerad.
  4. Välj Spara.
  5. Nu är du tillbaka på sidan Enheter och enheten som du skapade bör finnas i listan. Välj den enheten.
  6. Välj Lägg till modulidentitet.
  7. Under Modulidentitetsnamn anger du ett namn för modulen, till exempel DUAgent.
  8. Välj Spara

Kopiera modulanslutningssträngen

  1. I enhetsvyn bör du se den nya modulen under rubriken Modulidentiteter . Välj modulnamnet för att öppna dess information.
  2. Välj ikonen Kopiera bredvid Anslutningssträng (primär nyckel). Spara den här anslutningssträngen som ska användas när du konfigurerar enhetsuppdateringsagenten. Den här strängen är modulanslutningssträngen.

Lägga till en tagg i modultvillingen

  1. På sidan med information om modulidentitet väljer du Modulidentitetstvilling

  2. Lägg till ett nytt taggvärde för enhetsuppdatering på samma nivå som modelId och version i tvillingfilen enligt följande:

    "tags": {
        "ADUGroup": "DU-simulator-tutorial"
    },
    

    Skärmbild av taggen ADUGroup i modultvillingen.

    Varje enhet som hanteras av Enhetsuppdatering behöver den här reserverade taggen, som tilldelar enheten till en enhetuppdateringsgrupp. Den kan finnas i enhetstvillingen eller i en modultvilling, som du ser här. Varje enhet kan bara tilldelas till en enhetsuppdateringsgrupp.

  3. Välj Spara. Portalen formaterar om modultvillingen för att införliva taggen i json-strukturen.

Installera och konfigurera enhetsuppdateringsagenten

Enhetsuppdateringsagenten körs på alla enheter som hanteras av Enhetsuppdatering. I den här självstudien konfigurerar vi den så att den körs som en simulator så att vi kan se hur en uppdatering kan tillämpas på en enhet utan att faktiskt ändra enhetens konfiguration.

  1. Lägg till Microsoft-paketlagringsplatsen på din IoT-enhet och lägg sedan till Signeringsnyckeln för Microsoft-paket i listan över betrodda nycklar.

    wget https://packages.microsoft.com/config/ubuntu/18.04/multiarch/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
    sudo dpkg -i packages-microsoft-prod.deb
    rm packages-microsoft-prod.deb   
    
  2. Installera .deb-paketen för enhetsuppdateringsagenten.

    sudo apt-get update
    sudo apt-get install deviceupdate-agent
    
  3. Öppna agentens konfigurationsfil.

    sudo nano /etc/adu/du-config.json
    
  4. Uppdatera följande värden i konfigurationsfilen:

    • manufacturer: "Contoso" – Det här värdet används för att klassificera IoT-enheten för måluppdateringar.
    • modell: "Video" – Det här värdet används för att klassificera IoT-enheten för måluppdateringar.
    • namn: "aduagent"
    • agents.connectionData: Ange anslutningssträngen som du kopierade från modulidentiteten.
    • agents.manufacturer: "Contoso"
    • agents.model: "Video"

    Mer information om parametrarna i det här steget finns i Konfigurationsfil för enhetsuppdatering.

    Anteckning

    Du kan också använda IoT Identity Service för att etablera enheten. Det gör du genom att installera IoT-identitetstjänsten innan du installerar enhetsuppdateringsagenten. Konfigurera sedan enhetsuppdateringsagenten med "connectionType": "AIS" och connectionData som en tom sträng i konfigurationsfilen.

  5. Spara och stäng filen. CTRL + X, Yoch Enter.

  6. Konfigurera agenten så att den körs som en simulator. Kör följande kommando på IoT-enheten så att enhetsuppdateringsagenten anropar simulatorhanteraren för att bearbeta en paketuppdatering med SWUpdate (microsoft/swupdate:1).

      sudo /usr/bin/AducIotAgent --extension-type updateContentHandler --extension-id 'microsoft/swupdate:1' --register-extension /var/lib/adu/extensions/sources/libmicrosoft_simulator_1.so
    
  7. Packa upp Tutorial_Simulator.zip filen som du laddade ned i förhandskraven och kopiera sample-du-simulator-data.json filen till mappen tmp .

    cp sample-du-simulator-data.json /tmp/du-simulator-data.json
    

    Om /tmp inte finns kör du:

    sudo mkdir/tmp
    sudo chown root:root/tmp
    sudo chmod 1777/tmp
    
  8. Ändra behörigheter för den nya filen.

    sudo chown adu:adu /tmp/du-simulator-data.json
    sudo chmod 664 /tmp/du-simulator-data.json
    
  9. Starta om enhetsuppdateringsagenten för att tillämpa ändringarna.

     sudo systemctl restart deviceupdate-agent
    

Importera en uppdatering

I det här avsnittet använder du filerna TutorialImportManifest_Sim.importmanifest.json och adu-update-image-raspberrypi3.swu från de nedladdade Tutorial_Simulator.zip i förhandskraven. Uppdateringsfilen återanvänds från självstudiekursen om Raspberry Pi. Eftersom uppdateringen i den här självstudien simuleras spelar det specifika filinnehållet ingen roll.

  1. Logga in på Azure Portal på utvecklingsdatorn och gå till din IoT-hubb som har konfigurerats med Enhetsuppdatering.

  2. Välj Uppdateringar under Enhetshantering i navigeringsfönstret.

  3. Välj Importera en ny uppdatering.

  4. Välj Välj från lagringscontainer.

  5. Välj ett befintligt lagringskonto eller skapa ett nytt konto genom att välja + Lagringskonto. Välj sedan en befintlig container eller skapa en ny container genom att välja + Container. Den här containern används för att mellanlagra uppdateringsfilerna för import.

    Anteckning

    Vi rekommenderar att du använder en ny container varje gång du importerar en uppdatering för att undvika att filer från tidigare uppdateringar importeras av misstag. Om du inte använder en ny container måste du ta bort filer från den befintliga containern innan du slutför det här steget.

    Skärmbild som visar lagringskonton och containrar.

  6. I containern väljer du Ladda upp och går till de filer som du laddade ned i förutsättningarna. Välj filerna TutorialImportManifest_Sim.importmanifest.json och adu-update-image-raspberrypi3.swu och välj sedan Ladda upp.

  7. Markera kryssrutan för varje fil och välj sedan knappen Välj för att återgå till sidan Importera uppdatering .

    Skärmbild som visar hur du väljer uppladdade filer i containern.

  8. På sidan Importera uppdatering granskar du de filer som ska importeras. Välj sedan Importera uppdatering för att starta importen.

    Skärmbild som visar uppladdade filer som ska importeras som en uppdatering.

  9. Importen börjar och skärmen växlar till avsnittet Importhistorik . Kolumnen Status visar importen som Körs medan importen pågår och Lyckades när importen är klar. Använd knappen Uppdatera för att uppdatera statusen.

  10. När kolumnen Status anger att importen har slutförts väljer du rubriken Tillgängliga uppdateringar . Du bör nu se den importerade uppdateringen i listan.

    Skärmbild som visar den nya uppdateringen som visas som en tillgänglig uppdatering.

Mer information om importprocessen finns i Importera en uppdatering till Enhetsuppdatering för IoT Hub.

Visa enhetsgrupper

Enhetsuppdatering använder grupper för att organisera enheter. Enhetsuppdatering sorterar automatiskt enheter i grupper baserat på deras tilldelade taggar och kompatibilitetsegenskaper. Varje enhet tillhör bara en grupp, men grupper kan ha flera undergrupper för att sortera olika enhetsklasser.

  1. Gå till fliken Grupper och distributioner överstsidan Uppdateringar.

  2. Visa listan över grupper och diagrammet för uppdateringsefterlevnad. Diagrammet för uppdateringsefterlevnad visar antalet enheter i olika efterlevnadstillstånd: Vid den senaste uppdateringen är nya uppdateringar tillgängliga och Uppdateringar pågår. Läs mer om uppdateringsefterlevnad.

    Skärmbild som visar vyn uppdateringsefterlevnad.

    Du bör se en enhetsgrupp som innehåller den simulerade enhet som du har konfigurerat i den här självstudien tillsammans med eventuella tillgängliga uppdateringar för enheterna i den nya gruppen. Om det finns enheter som inte uppfyller kraven för enhetsklassen i gruppen visas de i en motsvarande ogiltig grupp.

Mer information om taggar och grupper finns i Hantera enhetsgrupper.

Distribuera uppdateringen

  1. På fliken Grupper och distributioner bör du se en ny uppdatering som är tillgänglig för din enhetsgrupp. En länk till uppdateringen ska vara under Status. Du kan behöva uppdatera sidan.

  2. Välj gruppnamnet för att visa dess information.

  3. På sidan gruppinformation bör du se att det finns en ny uppdatering tillgänglig. Välj Distribuera för att starta distributionen.

    Skärmbild som visar hur du startar en gruppuppdateringsdistribution.

  4. Uppdateringen som vi importerade i föregående avsnitt visas som den bästa tillgängliga uppdateringen för den här gruppen. Välj Distribuera.

  5. Schemalägg distributionen så att den startar omedelbart och välj sedan Skapa.

  6. Gå till fliken Aktuella uppdateringar på sidan gruppinformation. Under Distributionsinformation övergår Status till Aktiv.

  7. När enheten har uppdaterats återgår du till sidan Uppdateringar. Du bör se att efterlevnadsdiagrammet och distributionsinformationen uppdateras för att återspegla samma sak.

Övervaka uppdateringsdistributionen

  1. Gå tillbaka till gruppinformationssidan och välj fliken Distributionshistorik .

  2. Välj Visa distributionsinformation bredvid den distribution som du skapade.

    Skärmbild som visar distributionsinformation.

  3. Välj Uppdatera för att visa den senaste statusinformationen.

Nu har du slutfört en lyckad avbildningsuppdatering från slutpunkt till slutpunkt med hjälp av Enhetsuppdatering för IoT Hub med hjälp av referensagenten för Ubuntu-simulatorn (18,04 x 64).

Rensa resurser

Om du ska fortsätta till nästa självstudie behåll enhetsuppdateringen och IoT Hub resurser.

När de inte längre behövs kan du ta bort dessa resurser i Azure Portal.

  1. Gå till resursgruppen i Azure Portal.

  2. Välj vilka resurser som ska tas bort.

    • Om du vill ta bort alla resurser i gruppen väljer du Ta bort resursgrupp.
    • Om du bara vill ta bort markera resurser använder du kryssrutorna för att markera resurserna och väljer sedan Ta bort.

Nästa steg

I den här självstudien har du lärt dig hur du importerar och distribuerar en avbildningsuppdatering. Lär dig sedan hur du uppdaterar enhetspaket.