Delen via


Een update voorbereiden om te importeren in Device Update

In dit artikel wordt beschreven hoe u een nieuwe update krijgt en voorbereidt voor het importeren in Azure Device Update voor IoT Hub door een importmanifest te maken.

Vereisten

  • Een Apparaatupdate-account en -exemplaar dat is geconfigureerd met een IoT-hub.

  • Een IoT-apparaat of -simulator die is ingericht voor Device Update binnen de IoT-hub.

  • De Bash-omgeving in Azure Cloud Shell voor het uitvoeren van Azure CLI-opdrachten. Selecteer Cloud Shell starten om Cloud Shell te openen of selecteer het Cloud Shell-pictogram op de bovenste werkbalk van Azure Portal.

    Als u wilt, kunt u de Azure CLI-opdrachten lokaal uitvoeren:

    1. Installeer Azure CLI. Voer az version uit om de geïnstalleerde Azure CLI-versie en afhankelijke bibliotheken te bekijken en voer az upgrade uit om de nieuwste versie te installeren.
    2. Meld u aan bij Azure door az login uit te voeren.
    3. Installeer de azure-iot extensie wanneer u hierom wordt gevraagd voor het eerste gebruik. Voer uit az extension update --name azure-iotom ervoor te zorgen dat u de nieuwste versie van de extensie gebruikt.

Tip

De Azure CLI-opdrachten in dit artikel gebruiken het backslash \-teken voor regelvervolging, zodat de opdrachtargumenten gemakkelijker te lezen zijn. Deze syntaxis werkt in Bash-omgevingen. Als u deze opdrachten uitvoert in PowerShell, vervangt u elke backslash door een backtick of verwijdert u deze volledig.

De updatebestanden voor uw apparaat ophalen

Haal het updatebestand of de bestanden op die u op uw apparaat wilt implementeren met behulp van Device Update. Als u apparaten hebt gekocht bij een oem (original equipment manufacturer) of oplossingsintegrator, biedt die organisatie waarschijnlijk updates zonder dat u updatebestanden hoeft te maken. Neem contact op met de OEM- of oplossingsintegrator om erachter te komen hoe ze updates beschikbaar maken. Als uw organisatie software voor uw apparaten maakt, worden ook de updates voor die software gemaakt.

Als u de update wilt maken, kiest u het updatetype op basis van installatiekopieën of pakketten, afhankelijk van uw scenario.

Tip

U kunt de zelfstudies voor het bijwerken van afbeeldingen, pakketten of proxy-updates proberen of gewoon voorbeeldmanifestbestanden uit deze zelfstudies bekijken ter referentie.

Een eenvoudig importmanifest voor Device Update maken

Zodra u uw updatebestanden hebt en bekend bent met de basisconcepten voor het importeren van Device Update, maakt u een importmanifest om de update te beschrijven. Hoewel u handmatig een JSON-importmanifest kunt maken met behulp van een teksteditor, vereenvoudigt de Azure CLI az iot du init v5-opdracht het proces. Zie Schema voor importeren en API-gegevens voor apparaatupdates voor meer informatie over het importmanifestschema.

De az iot du init v5 opdracht heeft de volgende argumenten. Alle zijn vereist, behalve --file, die is afgeleid van --step indien niet opgegeven. Er is positionele gevoeligheid tussen --step en --file.

  • Met --update-providerde parameters , --update-nameen --update-version parameters wordt het updateId object gedefinieerd dat een unieke id is voor elke update.
  • Het --compat compatibiliteitsobject is een set naam-waardeparen waarmee de eigenschappen van een apparaat worden beschreven waarmee deze update compatibel is. U kunt een specifieke set compatibiliteitseigenschappen gebruiken met slechts één provider en naamcombinatie.
  • De --step parameter specificeert de update handler op het apparaat, zoals microsoft/script:1, microsoft/swupdate:1of microsoft/apt:1, en de bijbehorende properties update voor deze update. U kunt meerdere keren gebruiken --step .
  • De --file parameter geeft de path aan uw updatebestanden. U kunt een of meer keren gebruiken --file .
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> 

In de volgende az iot du update init v5 opdracht ziet u voorbeeldwaarden:

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

Tip

Voor handler-eigenschappen moet u mogelijk bepaalde tekens in uw JSON escapen. Gebruik bijvoorbeeld '\' dubbele aanhalingstekens als u de Azure CLI uitvoert in PowerShell.

De az iot du init v5 opdracht ondersteunt geavanceerde scenario's, waaronder de functie gerelateerde bestanden waarmee u de relatie tussen verschillende updatebestanden kunt definiëren. Zie de opdrachtreferentie az iot du init v5 voor meer voorbeelden en een volledige lijst met optionele parameters.

Zodra u het importmanifest hebt gemaakt en opslaat als een JSON-bestand, kunt u de update importeren. Als u van plan bent om Azure Portal te gebruiken voor het importeren, moet u uw importmanifest een naam geven met de indelingsmanifestnaam<>.importmanifest.json.

Een geavanceerd importmanifest voor Device Update maken voor een proxy-update

Als uw update complexer is, zoals een proxy-update, moet u mogelijk meerdere importmanifesten maken. Voor complexe updates kunt u de az iot du update init v5 Azure CLI-opdracht gebruiken om een bovenliggend importmanifest en een aantal onderliggende importmanifesten te maken.

Vervang de tijdelijke aanduidingen in de volgende Azure CLI-opdrachten. Zie Schema- en API-gegevens importeren voor meer informatie over de waarden die u kunt gebruiken. In het volgende voorbeeld ziet u drie updates voor implementatie op het apparaat, een bovenliggende update en twee onderliggende updates.

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>