Självstudie: Azure Device Update för IoT Hub med hjälp av en simulatoragent
Azure Device Update för IoT Hub stöder avbildningsbaserade, paketbaserade och skriptbaserade uppdateringar. Den här självstudien visar en avbildningsbaserad uppdatering från slutpunkt till slutpunkt som använder en Ubuntu-simulatoragent.
Bilduppdateringar ger ett högt förtroende för enhetens sluttillstånd och utgör inte samma paket- och beroendehanteringsutmaningar som paket- eller skriptbaserade uppdateringar. Det är enklare att replikera resultatet av en avbildningsuppdatering mellan en förproduktions- och produktionsmiljö, eller att enkelt använda en A/B-redundansmodell.
I den här kursen får du:
- Tilldela en IoT-enhet till en enhetsuppdateringsgrupp med hjälp av taggar.
- Ladda ned och installera en avbildningsuppdatering.
- Importera avbildningsuppdateringen.
- Distribuera avbildningsuppdateringen.
- Visa uppdateringsdistributionshistoriken.
Förutsättningar
- En fysisk eller virtuell Ubuntu 18.04 x64-dator
- Ett enhetsuppdateringskonto och en instans som konfigurerats med en IoT-hubb
Registrera och konfigurera en enhet och modul
Lägg till en enhet i enhetsregistret i din IoT-hubb. Alla enheter som ansluter till IoT Hub måste vara registrerade.
- I Azure Portal öppnar du den IoT Hub-sida som är associerad med enhetsuppdateringsinstansen.
- I navigeringsfönstret väljer du Enheter för enhetshantering>.
- På sidan Enheter väljer du Lägg till enhet.
- Under Enhets-ID anger du ett namn för enheten. Kontrollera att kryssrutan Generera nycklar automatiskt är markerad.
- Välj Spara. Enheten visas i listan på sidan Enheter .
Skapa en modulidentitet
När du har registrerat enheten skapar du en modulidentitet. Moduler är oberoende identiteter för IoT-enhetskomponenter, vilket möjliggör finare kornighet när enheten kör flera processer.
I den här självstudien skapar du en modulidentitet för enhetsuppdateringsagenten som körs på enheten. Mer information finns i Förstå och använda modultvillingar i IoT Hub.
- På sidan Enheter väljer du den enhet som du registrerade.
- På enhetssidan väljer du Lägg till modulidentitet.
- På sidan Lägg till modulidentitet under Modulidentitetsnamn anger du ett namn för modulen, till exempel DeviceUpdateAgent.
- Välj Spara. Den nya modulidentiteten visas på enhetssidan under Modulidentiteter.
- Välj modulnamnet och välj ikonen Kopiera bredvid Anslutningssträng (primär nyckel) på sidan Modulidentitetsinformation. Spara den här modulen anslutningssträng som ska användas när du konfigurerar enhetsuppdateringsagenten.
Lägga till en grupptagg i modultvillingen
Enhetsuppdatering ordnar 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.
Du kan tilldela en tagg till alla enheter som Enhetsuppdatering hanterar för att tilldela enheten till en enhetsuppdateringsgrupp. Taggen kan finnas i enhetstvillingen eller i modultvillingen som i den här självstudien. Varje enhet kan endast tilldelas till en enhetsuppdateringsgrupp.
På sidan Information om modulidentitet väljer du Modulidentitetstvilling.
På sidan Modulidentitetstvilling lägger du till en ny
DeviceUpdateGroup
tagg i JSON-koden på samma nivå sommodelId
ochversion
, enligt följande:"tags": { "DeviceUpdateGroup": "DU-simulator-tutorial" },
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 Enhetsuppdatering hanterar. I den här självstudien installerar du enhetsuppdateringsagenten på Ubuntu 18.04-enheten och konfigurerar den så att den körs som en simulator, vilket visar hur du kan tillämpa en uppdatering på en enhet utan att ändra enhetskonfigurationen.
Kommentar
Du kan också använda Azure IoT Identity Service för att etablera enheten. Det gör du genom att installera Azure IoT Identity Service innan du installerar enhetsuppdateringsagenten. Konfigurera sedan enhetsuppdateringsagenten med "connectionType": "AIS"
och lämna connectionData
den som en tom sträng i konfigurationsfilen.
Lägg till Microsoft-paketlagringsplatsen 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
Installera enhetsuppdateringsagenten .deb paket.
sudo apt-get update sudo apt-get install deviceupdate-agent
Öppna konfigurationsfilen för du-config.json agent.
sudo nano /etc/adu/du-config.json
Uppdatera du-config.json med följande exempelvärden.
<connection string>
Ersätt platshållaren med anslutningssträng som du kopierade från modulidentiteten. Mer information om parametrarna finns i Konfigurationsfilen för enhetsuppdatering.manufacturer: "contoso"
model: "video"
agents.name: "aduagent"
agents.connectionData: <connection string>
agents.manufacturer: "contoso"
agents.model: "video"
Den redigerade du-config.json filen bör se ut så här:
{ "schemaVersion": "1.0", "aduShellTrustedUsers": [ "adu", "do" ], "manufacturer": "contoso", "model": "video", "agents": [ { "name": "aduagent", "runas": "adu", "connectionSource": { "connectionType": "string", "connectionData": <connection string> }, "manufacturer": "contoso", "model": "video" } ] }
Tryck på Ctrl+X för att avsluta redigeraren och ange y för att spara ändringarna.
Om du vill konfigurera agenten så att den körs som en simulator kör du följande kommando på IoT-enheten. Enhetsuppdateringsagenten anropar simulatorhanteraren för att bearbeta uppdateringar som använder Microsoft SWUpdate-tillägget.
sudo /usr/bin/AducIotAgent --extension-type updateContentHandler --extension-id 'microsoft/swupdate:1' --register-extension /var/lib/adu/extensions/sources/libmicrosoft_simulator_1.so
Hämta simulatorfilerna
Ladda ned och extrahera Tutorial_Simulator.zip-arkivet från avsnittet GitHub Device Update Releases latest release Assets på din Ubuntu 18.04-dator.
Du kan använda
wget
för att ladda ned ZIP-filen. Ersätt<release_version>
med den senaste versionen, till exempel1.0.0
.wget https://github.com/Azure/iot-hub-device-update/releases/download/<release_version>/Tutorial_Simulator.zip
Kopiera sample-du-simulator-data.json-filen från den extraherade mappen Tutorial_Simulator till mappen tmp.
cp sample-du-simulator-data.json /tmp/du-simulator-data.json
Kommentar
Om tmp-mappen inte finns skapar du den på följande sätt:
sudo mkdir/tmp sudo chown root:root/tmp sudo chmod 1777/tmp
Ändra behörigheterna för filen /tmp/sample-du-simulator-data.json .
sudo chown adu:adu /tmp/du-simulator-data.json sudo chmod 664 /tmp/du-simulator-data.json
Starta om enhetsuppdateringsagenten för att tillämpa ändringarna.
sudo systemctl restart deviceupdate-agent
Importera uppdateringen
Ladda ned och extrahera Tutorial_Simulator.zip-arkivet från avsnittet GitHub Device Update Releases latest release Assets (Tillgångar för senaste versionen) till utvecklingsdatorn om det skiljer sig från din Ubuntu 18.04 IoT-enhet. I det här avsnittet används filerna TutorialImportManifest_Sim.importmanifest.json och adu-update-image-raspberrypi3.swu från mappen Tutorial_Simulator .
Uppdateringsfilen är samma som i Raspberry Pi-självstudien. Eftersom uppdateringen i den här självstudien simuleras spelar det specifika filinnehållet ingen roll.
Logga in på Azure Portal på utvecklingsdatorn och gå till den IoT-hubb som konfigurerats med din enhetsuppdateringsinstans.
I navigeringsfönstret väljer du Enhetshantering> Uppdater.
På sidan Uppdateringar väljer du Importera en ny uppdatering.
På sidan Importera uppdatering väljer du Välj från lagringscontainer.
Välj ett befintligt lagringskonto eller skapa ett nytt konto genom att välja Lagringskonto.
Välj 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.
Kommentar
Om du vill undvika att oavsiktligt importera filer från tidigare uppdateringar använder du en ny container varje gång du importerar en uppdatering. Om du inte använder en ny container måste du ta bort alla filer från den befintliga containern.
På containersidan väljer du Ladda upp. Bläddra till och välj filerna TutorialImportManifest_Sim.importmanifest.json och adu-update-image-raspberrypi3.swu och välj sedan Ladda upp.
Markera kryssrutorna efter båda filerna och välj sedan Välj för att återgå till sidan Importera uppdatering.
På sidan Importera uppdatering granskar du de filer som ska importeras och väljer sedan Importera uppdatering.
Importprocessen börjar och du kan välja Visa importhistorik för att visa importhistorik och status. På sidan Uppdateringshistorik visar fältet Status Lyckades när importen är klar. Du kan välja Uppdatera för att uppdatera statusen.
Den importerade uppdateringen visas nu på sidan Uppdateringar .
Mer information om importprocessen finns i Importera en uppdatering till Enhetsuppdatering för IoT Hub.
Välj enhetsgrupp
Du kan använda grupptaggen som du använde på enheten för att distribuera uppdateringen till enhetsgruppen. Välj fliken Grupper och distributioner överst på sidan Uppdateringar för att visa listan över grupper och distributioner och diagrammet för uppdateringsefterlevnad.
Diagrammet för uppdateringsefterlevnad visar antalet enheter i olika efterlevnadstillstånd: Vid den senaste uppdateringen, Nya uppdateringar som är tillgängliga och Uppdateringar pågår. Mer information finns i Enhetsuppdateringsefterlevnad.
Under Gruppnamn visas en lista över alla enhetsgrupper för enheter som är anslutna till den här IoT-hubben och deras tillgängliga uppdateringar, med länkar för att distribuera uppdateringarna under Status. Alla enheter som inte uppfyller enhetsklasskraven för en grupp visas i en motsvarande ogiltig grupp. Mer information om taggar och grupper finns i Hantera enhetsgrupper.
Du bör se den enhetsgrupp som innehåller den simulerade enhet som du konfigurerade i den här självstudien. Välj gruppnamnet för att visa dess information.
Distribuera uppdateringen
På sidan Gruppinformation bör du se en ny uppdatering som är tillgänglig för den här gruppen. Välj Distribuera för att starta distributionen.
Uppdateringen som du har importerat visas som den bästa tillgängliga uppdateringen för den här gruppen. Välj distribuera.
Schemalägg distributionen så att den startar omedelbart och välj sedan Skapa.
Gå till fliken Aktuella uppdateringar. Under Distributionsinformation övergår Status till Aktiv.
När enheten har uppdaterats återgår du till sidan Uppdateringar . Du bör se att efterlevnadsdiagrammet och distributionsinformationen har uppdaterats för att inkludera den installerade uppdateringen.
Visa uppdateringsdistributionshistorik
Gå tillbaka till gruppinformationssidan och välj fliken Distributionshistorik .
Välj Visa distributionsinformation bredvid den distribution som du skapade. Välj Uppdatera för att visa den senaste statusinformationen.
Rensa resurser
Om du ska fortsätta till nästa självstudie behåll dina resurser för enhetsuppdatering och IoT Hub. När du inte längre behöver de resurser som du skapade för den här självstudien kan du ta bort dem.
- I Azure Portal navigerar du till resursgruppen som innehåller resurserna.
- Om du vill ta bort alla resurser i gruppen väljer du Ta bort resursgrupp.
- Om du bara vill ta bort några av resurserna använder du kryssrutorna för att markera resurserna och väljer sedan Ta bort.