Not
Å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.
Enhetsuppdatering för Azure IoT Hub stöder avbildningsbaserade, paketbaserade och skriptbaserade uppdateringar.
Bilduppdateringar ger en högre nivå av 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 paket och deras beroenden. På grund av deras atomiska karaktär kan du också enkelt använda en A/B-redundansmodell.
I den här handledningen går vi igenom stegen för att slutföra en fullständig avbildningsbaserad uppdatering med hjälp av Enhetsuppdatering för IoT Hub på ett Raspberry Pi 3 B+-kort.
I den här självstudien får du lära dig att:
- Ladda ned en bild.
- Lägg till en tagg till din IoT-enhet.
- Importera en uppdatering.
- Skapa en enhetsgrupp.
- Distribuera en bilduppdatering.
- Övervaka uppdateringsdistributionen.
Anmärkning
Bilduppdateringar i den här handledningen har verifierats på Raspberry Pi B3-kortet.
Förutsättningar
Om du inte redan har gjort det skapar du ett konto och en instans för enhetsuppdatering och konfigurerar en IoT-hubb.
Ladda ned avbildningen
Vi tillhandahåller exempelbilder i Assets på GitHub-sidan för enhetsuppdateringsversioner. Filen .gz är basavbildningen som du kan flasha på en Raspberry Pi 3 B+-tavla. SwUpdate-filen är den uppdatering som du skulle importera via Enhetsuppdatering för IoT Hub.
Flasha ett SD-kort med bilden
Använd ditt favoritverktyg för operativsystem-flashning för att installera basavbilden för Enhetsuppdatering (adu-base-image) på SD-kortet som ska användas i Raspberry Pi 3 B+-enheten.
Använd bmaptool för att flasha SD-kortet
bmaptoolInstallera verktyget om du inte redan har gjort det.sudo apt-get install bmap-toolsLeta upp sökvägen för SD-kortet i
/dev. Sökvägen bör se ut ungefär som/dev/sd*eller/dev/mmcblk*. Du kan användadmesgverktyget för att hitta rätt sökväg.Demontera alla monterade partitioner innan du blinkar.
sudo umount /dev/<device>Kontrollera att du har skrivbehörighet till enheten.
sudo chmod a+rw /dev/<device>Valfritt: För snabbare blinkande laddar du ned bimap-filen och bildfilen och placerar dem i samma katalog.
Flasha SD-kortet.
sudo bmaptool copy <path to image> /dev/<device>
Enhetsuppdatering för Azure IoT Hub-programvara omfattas av följande licensvillkor:
Läs licensvillkoren innan du använder agenten. Din installation och användning utgör ditt godkännande av dessa villkor. Om du inte godkänner licensvillkoren ska du inte använda enhetsuppdateringen för IoT Hub-agenten.
Skapa en enhet eller modul i IoT Hub och hämta en anslutningssträng
Lägg nu till enheten i IoT Hub. Från IoT Hub genereras en anslutningssträng för enheten.
Starta IoT Hub från Azure-portalen.
Skapa en ny enhet.
Välj Enheter i den vänstra rutan. Välj sedan Nytt.
Under Enhets-ID anger du ett namn för enheten. Kontrollera att kryssrutan Generera nycklar automatiskt är markerad.
Välj Spara. På sidan Enheter ska den enhet som du skapade finnas i listan.
Hämta enhetsanslutningssträngen med något av två alternativ:
- Alternativ 1: Använd enhetsuppdateringsagenten med en modulidentitet: Välj Lägg till modulidentitet högst upp på sidan Enheter. Skapa en ny enhetsuppdateringsmodul med namnet IoTHubDeviceUpdate. Välj andra alternativ när de gäller för ditt användningsfall och välj sedan Spara. Välj den nyligen skapade modulen. I modulvyn väljer du ikonen Kopiera bredvid Primär anslutningssträng.
- Alternativ 2: Använd enhetsuppdateringsagenten med enhetsidentiteten: I enhetsvyn väljer du ikonen Kopiera bredvid Primär anslutningssträng.
Klistra in de kopierade tecknen någonstans för senare användning i följande steg:
Den här kopierade strängen är enhetens anslutningssträng.
Förbereda konfigurationer på enheten för enhetsuppdatering för IoT Hub
Två konfigurationsfiler måste finnas på enheten så att Enhetsuppdatering för IoT Hub konfigureras korrekt. Den första filen är du-config.json filen som måste finnas på /adu/du-config.json. Den andra filen är du-diagnostics-config.json filen som måste finnas på /adu/du-diagnostics-config.json.
Här är två exempel för du-config.json filerna och du-diagnostics-config.json :
Exempel du-config.json
{
"schemaVersion": "1.0",
"aduShellTrustedUsers": [
"adu",
"do"
],
"manufacturer": "fabrikam",
"model": "vacuum",
"agents": [
{
"name": "main",
"runas": "adu",
"connectionSource": {
"connectionType": "string",
"connectionData": "HostName=example-connection-string.azure-devices.net;DeviceId=example-device;SharedAccessKey=M5oK/rOP12aB5678YMWv5vFWHFGJFwE8YU6u0uTnrmU="
},
"manufacturer": "fabrikam",
"model": "vacuum"
}
]
}
Exempel du-diagnostics-config.json
{
"logComponents":[
{
"componentName":"adu",
"logPath":"/adu/logs/"
},
{
"componentName":"do",
"logPath":"/var/log/deliveryoptimization-agent/"
}
],
"maxKilobytesToUploadPerLogPath":50
}
Konfigurera enhetsuppdateringsagenten på Raspberry Pi
Kontrollera att Raspberry Pi 3 är ansluten till nätverket.
Följ de här anvisningarna för att lägga till konfigurationsinformationen:
Först SSH in på datorn med hjälp av följande kommando i PowerShell-fönstret:
ssh raspberrypi3 -l rootSkapa eller öppna
du-config.jsonfilen för redigering med hjälp av:nano /adu/du-config.jsonNär du har kört kommandot bör du se en öppen redigerare med filen. Om du aldrig har skapat filen blir den tom. Kopiera nu föregående exempel du-config.json innehåll och ersätt de konfigurationer som krävs för enheten. Ersätt sedan exempelanslutningssträngen med den för den enhet som du skapade i föregående steg.
När du har slutfört ändringarna väljer du Ctrl+X för att avsluta redigeraren. Ange sedan y för att spara ändringarna.
Nu måste du skapa
du-diagnostics-config.jsonfilen med liknande kommandon. Börja med att skapa eller öppnadu-diagnostics-config.jsonfilen för redigering med hjälp av:nano /adu/du-diagnostics-config.jsonKopiera föregående exempel du-diagnostics-config.json innehåll och ersätt alla konfigurationer som skiljer sig från standardversionen. Exemplet du-diagnostics-config.json-filen representerar standardloggplatserna för Enhetsuppdatering för IoT Hub. Du behöver bara ändra dessa om implementeringen skiljer sig åt.
När du har slutfört ändringarna väljer du Ctrl+X för att avsluta redigeraren. Ange sedan y för att spara ändringarna.
Använd följande kommando för att visa filerna som finns i
/adu/katalogen. Du bör se båda konfigurationsfilerna files.du-diagnostics-config.json för redigering med hjälp av:ls -la /adu/
Starta om enhetsuppdateringssystemets daemon för att kontrollera att konfigurationerna har tillämpats. Använd följande kommando i terminalen som är inloggad på
raspberrypi:systemctl start adu-agentKontrollera att agenten är live med hjälp av följande kommando:
systemctl status adu-agentDu bör se statusen komma tillbaka som levande och grön.
Ansluta enheten i Enhetsuppdatering för IoT Hub
Välj Enheter i den vänstra rutan.
Välj länken med enhetsnamnet.
Längst upp på sidan väljer du Enhetstvilling om du ansluter direkt till Enhetsuppdatering med hjälp av IoT-enhetsidentiteten. Annars väljer du den modul som du skapade och väljer modulens tvilling.
Under det rapporterade avsnittet i egenskaperna för Enhetstvilling söker du efter Linux-kärnversionen. För en ny enhet, som inte har tagit emot en uppdatering från Enhetsuppdatering, representerar värdet DeviceManagement:DeviceInformation:1.swVersion den version av inbyggd programvara som körs på enheten. När en uppdatering har tillämpats på en enhet använder Device Update egenskapsvärdet AzureDeviceUpdateCore:ClientMetadata:4.installedUpdateId för att representera den version av inbyggd programvara som körs på enheten.
Bas- och uppdateringsavbildningsfilerna har ett versionsnummer i filnamnet.
adu-<image type>-image-<machine>-<version number>.<extension>
Använd versionsnumret i avsnittet "Importera uppdateringen" senare.
Lägga till en tagg på enheten
Logga in på Azure-portalen och gå till IoT-hubben.
I den vänstra rutan, under Enheter, hittar du din IoT-enhet och går till enhetstvillingen eller modultvillingen.
Ta bort alla befintliga taggvärden för enhetsuppdatering i modultvillingen för enhetsuppdateringsagenten genom att ställa in dem på null. Om du använder enhetsidentiteten med enhetsuppdateringsagenten gör du dessa ändringar på enhetstvillingen.
Lägg till ett nytt taggvärde för enhetsuppdatering enligt följande:
"tags": { "ADUGroup": "<CustomTagValue>" }
Importera uppdateringen
Ladda ner exempeltutorialmanifestet (självstudieimport Manifest_Pi.json) och exempeluppdateringen (adu-update-image-raspberrypi3-0.6.5073.1.swu) från Release Assets för senaste agentversionen.
Logga in på Azure-portalen och gå till din IoT-hubb med Enhetsuppdatering. I den vänstra rutan går du till Automatisk enhetshantering och väljer Uppdateringar.
Välj fliken Uppdateringar .
Välj + Importera ny uppdatering.
Välj + Välj från lagringscontainer. Välj ett befintligt konto eller skapa ett nytt konto med hjälp av + Lagringskonto. Välj sedan en befintlig container eller skapa en ny container med hjälp av + Container. Den här containern används för att mellanlagra dina uppdateringsfiler för import.
Anmärkning
Vi rekommenderar att du använder en ny container varje gång du importerar en uppdatering för att undvika att oavsiktligt importera filer från tidigare uppdateringar. 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.
I containern väljer du Ladda upp och går till de filer som du laddade ned i steg 1. När du har valt alla dina uppdateringsfiler väljer du Ladda upp. Välj sedan knappen Välj för att återgå till sidan Importera uppdatering .
Den här skärmbilden visar importsteget. Filnamn kanske inte matchar de som används i exemplet.
På sidan Importera uppdatering granskar du de filer som ska importeras. Välj sedan Importera uppdatering för att starta importprocessen.
Importprocessen börjar och skärmen växlar till avsnittet Importhistorik . 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.
Läs mer om hur du importerar uppdateringar.
Skapa en uppdateringsgrupp
Gå till fliken Grupper och distributioner överst på sidan.
Välj Lägg till grupp för att skapa en ny grupp.
Välj en IoT Hub-tagg och enhetsklass i listan. Välj sedan Skapa grupp.
När gruppen har skapats uppdateras listan med uppdateringskompatibilitetsdiagram och grupper. 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. Läs mer om uppdateringsefterlevnad.
Du bör se din nyligen skapade grupp och eventuella tillgängliga uppdateringar för enheterna i den nya gruppen. Om det finns enheter som inte uppfyller enhetens klasskrav för gruppen visas de i en motsvarande ogiltig grupp. Om du vill distribuera den bästa tillgängliga uppdateringen till den nya användardefinierade gruppen i den här vyn väljer du Distribuera bredvid gruppen.
Läs mer om hur du lägger till taggar och skapar uppdateringsgrupper.
Distribuera uppdateringen
När gruppen har skapats bör du se en ny uppdatering som är tillgänglig för din enhetsgrupp. En länk till uppdateringen ska vara under Bästa uppdatering. Du kan behöva uppdatera en gång. Läs mer om uppdateringsefterlevnad.
Välj målgruppen genom att välja gruppnamnet. Du dirigeras till gruppinformationen under Grunderna för grupp.
Starta distributionen genom att gå till fliken Aktuell distribution . Välj distributionslänken bredvid önskad uppdatering från avsnittet Tillgängliga uppdateringar . Den bästa tillgängliga uppdateringen för en viss grupp anges med en bästa markering.
Schemalägg distributionen så att den startar omedelbart eller i framtiden. Välj sedan Skapa.
Under Distributionsinformation övergår Status till Aktiv. Den distribuerade uppdateringen är markerad med (distribution).
Visa efterlevnadsdiagrammet för att se att uppdateringen pågår.
När enheten har uppdaterats ser du att efterlevnadsdiagrammet och distributionsinformationen har uppdaterats för att återspegla samma sak.
Övervaka uppdateringsdistributionen
Välj fliken Distributionshistorik överst på sidan.
Välj Information bredvid den distribution som du skapade.
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 på en Raspberry Pi 3 B+-enhet.
Rensa resurser
När det inte längre behövs rensar du ditt enhetsuppdateringskonto, instans, IoT-hubb och IoT-enhet.