Dela via


Förbereda en uppdatering för import till Enhetsuppdatering för IoT Hub

Lär dig hur du hämtar en ny uppdatering och förbereder uppdateringen för import till Enhetsuppdatering för IoT Hub.

Förutsättningar

  • Åtkomst till en IoT Hub med Enhetsuppdatering för IoT Hub aktiverat.

  • En Azure CLI-miljö:

    1. Logga in på Azure CLI med kommandot az login .
    2. Kör az version om du vill hitta versionen och de beroende bibliotek som är installerade. Om du vill uppgradera till den senaste versionen kör du az upgrade.
    3. När du uppmanas till det installerar du Azure CLI-tillägg vid första användningen. Kommandona i den här artikeln använder azure-iot-tillägget . Kör az extension update --name azure-iot för att se till att du använder den senaste versionen av tillägget.

Dricks

Azure CLI-kommandona i den här artikeln använder omvänt snedstreck \ för radfortsättning så att kommandoargumenten blir lättare att läsa. Den här syntaxen fungerar i Bash-miljöer. Om du kör dessa kommandon i PowerShell ersätter du varje omvänt snedstreck med en backtick eller tar bort dem helt.

Hämta en uppdatering för dina enheter

Nu när du har konfigurerat Enhetsuppdatering och etablerat dina enheter behöver du de uppdateringsfiler som du ska distribuera till dessa enheter.

  • Om du har köpt enheter från en OEM-tillverkare (Original Equipment Manufacturer) eller lösningsintegrerare tillhandahåller den organisationen förmodligen uppdateringsfiler åt dig, utan att du behöver skapa uppdateringarna. Kontakta OEM-tillverkaren eller lösningsintegreraren för att ta reda på hur de gör uppdateringar tillgängliga.

  • Om din organisation skapar programvara för de enheter som du använder skapar samma grupp uppdateringarna för programvaran.

När du skapar en uppdatering som ska distribueras med enhetsuppdatering för IoT Hub börjar du med den avbildningsbaserade eller paketbaserade metoden beroende på ditt scenario.

Skapa ett grundläggande importmanifest för enhetsuppdatering

När du har dina uppdateringsfiler skapar du ett importmanifest för att beskriva uppdateringen. Om du inte redan har gjort det kan du bekanta dig med de grundläggande importbegreppen. Även om det är möjligt att skapa ett JSON-importmanifest manuellt med hjälp av en textredigerare, förenklar Azure-kommandoradsgränssnittet (CLI) processen avsevärt och används i exemplen nedan.

Dricks

Prova självstudierna för avbildningsbaserad, paketbaserad eller proxyuppdatering om du inte redan har gjort det. Du kan också bara visa exempel på importmanifestfiler från dessa självstudier som referens.

Kommandot az iot du init v5 tar följande argument:

  • --update-provider, --update-name, och --update-version: Dessa tre parametrar definierar objektet updateId som är en unik identifierare för varje uppdatering.
  • --compat: Kompatibilitetsobjektet är en uppsättning namn/värde-par som beskriver egenskaperna för en enhet som uppdateringen är kompatibel med.
    • Samma exakta uppsättning kompatibilitetsegenskaper kan inte användas med fler än en kombination av provider och namn.
  • --step: Uppdateringshanteraren på enheten (till exempel microsoft/script:1, microsoft/swupdate:1, eller microsoft/apt:1) och dess associerade egenskaper för den här uppdateringen.
  • --file: Sökvägarna till uppdateringsfilen eller filerna.

Mer information om dessa parametrar finns i Importera schema och API-information.

az iot du update init v5 \
    --update-provider <replace with your Provider> \
    --update-name <replace with your update Name> \
    --update-version <replace with your update Version> \
    --compat <replace with the property name>=<replace with the value your device will report> <replace with the property name>=<replace with the value your device will report> \
    --step handler=<replace with your chosen handler> properties=<replace with any handler properties (JSON-formatted)> \
    --file path=<replace with path(s) to your update file(s), including the full file name> 

Till exempel:

az iot du update init v5 \
    --update-provider Microsoft \
    --update-name AptUpdate \
    --update-version 1.0.0 \
    --compat manufacturer=Contoso model=Vacuum \
    --step handler=microsoft/script:1 properties='{"installedCriteria": "1.0"}' \
    --file path=/my/apt/manifest/file

För hanteringsegenskaper kan du behöva undvika vissa tecken i din JSON. Använd till exempel '\' för att undvika dubbla citattecken om du kör Azure CLI i PowerShell.

Kommandot init stöder avancerade scenarier, inklusive funktionen relaterade filer som gör att du kan definiera relationen mellan olika uppdateringsfiler. Fler exempel och en fullständig lista över valfria parametrar finns i az iot du init v5.

När du har skapat importmanifestet och sparat det som en JSON-fil är du redo att importera uppdateringen. Om du planerar att använda Användargränssnittet för Azure-portalen för import bör du namnge importmanifestet i följande format: "<manifestname>.importmanifest.json".

Skapa ett avancerat importmanifest för enhetsuppdatering för en proxyuppdatering

Om uppdateringen är mer komplex, till exempel en proxyuppdatering, kan du behöva skapa flera importmanifest. Du kan använda samma Azure CLI-metod från föregående avsnitt för att skapa både ett överordnat importmanifest och ett antal underordnade importmanifest för komplexa uppdateringar. Kör följande Azure CLI-kommandon när du har ersatt exempelparametervärdena med dina egna. Mer information om vilka värden du kan använda finns i Importera schema och API-information . I exemplet nedan finns det tre uppdateringar som ska distribueras till enheten: en överordnad uppdatering och två underordnade uppdateringar:

az iot du update init v5 \
    --update-provider <replace with child_1 update Provider> \
    --update-name <replace with child_1 update Name> \
    --update-version <replace with child_1 update Version> \
    --compat manufacturer=<replace with the value your device will report> model=<replace with the value your device will report> \
    --step handler=<replace with your chosen handler> \
    --file path=<replace with path(s) to your update file(s), including the full file name> \
az iot du update init v5 \
    --update-provider <replace with child_2 update Provider> \
    --update-name <replace with child_2 update Name> \
    --update-version <replace with child_2 update Version> \
    --compat manufacturer=<replace with the value your device will report> model=<replace with the value your device will report> \
    --step handler=<replace with your chosen handler> \
    --file path=<replace with path(s) to your update file(s), including the full file name> \
az iot du update init v5 \
    --update-provider <replace with the parent update Provider> \
    --update-name <replace with the parent update Name> \
    --update-version <replace with the parent update Version> \
    --compat manufacturer=<replace with the value your device will report> model=<replace with the value your device will report> \
    --step handler=<replace with your chosen handler> properties=<replace with any desired handler properties (JSON-formatted)> \
    --file path=<replace with path(s) to your update file(s), including the full file name> \
    --step updateId.provider=<replace with child_1 update provider> updateId.name=<replace with child_1 update name> updateId.version=<replace with child_1 update version> \
    --step updateId.provider=<replace with child_2 update provider> updateId.name=<replace with child_2 update name> updateId.version=<replace with child_2 update version> \

Nästa steg