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:
- 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.
- Meld u aan bij Azure door az login uit te voeren.
- Installeer de
azure-iot
extensie wanneer u hierom wordt gevraagd voor het eerste gebruik. Voer uitaz extension update --name azure-iot
om 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-provider
de parameters ,--update-name
en--update-version
parameters wordt hetupdateId
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 updatehandler
op het apparaat, zoalsmicrosoft/script:1
,microsoft/swupdate:1
ofmicrosoft/apt:1
, en de bijbehorendeproperties
update voor deze update. U kunt meerdere keren gebruiken--step
. - De
--file
parameter geeft depath
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>