Dela via


Förbereda en uppdatering för import till Enhetsuppdatering

Den här artikeln beskriver hur du hämtar en ny uppdatering och förbereder den för import till Azure Device Update för IoT Hub genom att skapa ett importmanifest.

Förutsättningar

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 uppdateringsfilerna för enheten

Hämta uppdateringsfilen eller filerna som ska distribueras till enheten med hjälp av Enhetsuppdatering. Om du har köpt enheter från en oem-tillverkare eller lösningsintegrerare tillhandahåller organisationen förmodligen uppdateringar utan att du behöver skapa uppdateringsfiler. 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 dina enheter skapas även uppdateringarna för programvaran.

Om du vill skapa uppdateringen väljer du antingen den avbildningsbaserade eller paketbaserade uppdateringstypen, beroende på ditt scenario.

Dricks

Du kan prova självstudierna för bildbaserad, paketbaserad eller proxyuppdatering , eller bara visa exempel på importmanifestfiler från dessa självstudier som referens.

Skapa ett grundläggande importmanifest för enhetsuppdatering

När du har dina uppdateringsfiler och är bekant med grundläggande importbegrepp för enhetsuppdatering skapar du ett importmanifest för att beskriva uppdateringen. Du kan skapa ett JSON-importmanifest manuellt med hjälp av en textredigerare, men kommandot Azure CLI az iot du init v5 förenklar processen. Mer information om importmanifestschemat finns i Importschema för enhetsuppdatering och API-information.

Kommandot az iot du init v5 tar följande argument. Alla krävs förutom --file, som härleds från --step om de inte anges. Det finns positionskänslighet mellan --step och --file.

  • Parametrarna --update-provider, --update-nameoch --update-version definierar det updateId objekt 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. Du kan använda en specifik uppsättning kompatibilitetsegenskaper med endast en kombination av provider och namn.
  • Parametern --step anger uppdateringen handler på enheten, till exempel microsoft/script:1, microsoft/swupdate:1eller microsoft/apt:1, och dess associerade properties för den här uppdateringen. Du kan använda --step mer än en gång.
  • Parametern --file anger till dina uppdateringsfiler path . Du kan använda --file en eller flera gånger.
az iot du update init v5 \
    --update-provider <provider> \
    --update-name <update name> \
    --update-version <update version> \
    --compat <property1>=<value> <property2>=<value> \
    --step handler=<handler> properties=<JSON-formatted handler properties> \
    --file path=<paths and full file names of your update files> 

Följande az iot du update init v5 kommando visar exempelvärden:

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

Dricks

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 az iot du init v5 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 kommandoreferensen az iot du init v5 .

När du har skapat importmanifestet och sparat det som en JSON-fil kan du importera uppdateringen. Om du planerar att använda Azure Portal för import ska du namnge importmanifestet med formatet <manifestnamn>.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. För komplexa uppdateringar kan du använda Azure CLI-kommandot för att skapa ett överordnat az iot du update init v5 importmanifest och ett antal underordnade importmanifest.

Ersätt platshållarvärdena i följande Azure CLI-kommandon. Mer information om de värden som du kan använda finns i Importera schema och API-information. I följande exempel visas tre uppdateringar för att distribuera till enheten, en överordnad uppdatering och två underordnade uppdateringar.

az iot du update init v5 \
    --update-provider <child_1 update provider> \
    --update-name <child_1 update name> \
    --update-version <child_1 update version> \
    --compat manufacturer=<device manufacturer> model=<device model> \
    --step handler=<handler> \
    --file path=<paths and full file names of your update files> 
az iot du update init v5 \
    --update-provider <child_2 update provider> \
    --update-name <child_2 update name> \
    --update-version <child_2 update version> \
    --compat manufacturer=<device manufacturer> model=<device model> \
    --step handler=<handler> \
    --file path=<paths and full file names of your update files> 
az iot du update init v5 \
    --update-provider <parent update provider> \
    --update-name <parent update name> \
    --update-version <parent update version> \
    --compat manufacturer=<device manufacturer> model=<device model> \
    --step handler=<handler> properties=<any handler properties, JSON-formatted> \
    --file path=<paths and full file names of your update files> \
    --step updateId.provider=<child_1 update provider> updateId.name=<child_1 update name> updateId.version=<child_1 update version> \
    --step updateId.provider=<child_2 update provider> updateId.name=<child_2 update name> updateId.version=<child_2 update version>