Przygotowywanie aktualizacji do zaimportowania do usługi Device Update dla usługi IoT Hub
Dowiedz się, jak uzyskać nową aktualizację i przygotować aktualizację do zaimportowania do usługi Device Update dla usługi IoT Hub.
Wymagania wstępne
Dostęp do usługi IoT Hub z włączoną aktualizacją urządzenia dla usługi IoT Hub.
Środowisko interfejsu wiersza polecenia platformy Azure:
Użyj środowiska powłoki Bash w usłudze Azure Cloud Shell.
Jeśli wolisz uruchamiać polecenia referencyjne interfejsu wiersza polecenia lokalnie, zainstaluj interfejs wiersza polecenia platformy Azure
- Zaloguj się do interfejsu wiersza polecenia platformy Azure przy użyciu polecenia az login .
- Uruchom polecenie az version, aby znaleźć zainstalowane wersje i biblioteki zależne. Aby uaktualnić do najnowszej wersji, uruchom polecenie az upgrade.
- Po wyświetleniu monitu zainstaluj rozszerzenia interfejsu wiersza polecenia platformy Azure podczas pierwszego użycia. Polecenia w tym artykule używają rozszerzenia azure-iot . Uruchom polecenie
az extension update --name azure-iot
, aby upewnić się, że używasz najnowszej wersji rozszerzenia.
Napiwek
Polecenia interfejsu wiersza polecenia platformy Azure w tym artykule używają znaku ukośnika \
odwrotnego do kontynuacji wiersza, dzięki czemu argumenty poleceń są łatwiejsze do odczytania. Ta składnia działa w środowiskach powłoki Bash. Jeśli uruchamiasz te polecenia w programie PowerShell, zastąp każdy ukośnik odwrotny tekstem "" lub usuń je całkowicie.
Uzyskiwanie aktualizacji dla urządzeń
Po skonfigurowaniu usługi Device Update i aprowizacji urządzeń potrzebne są pliki aktualizacji, które zostaną wdrożone na tych urządzeniach.
Jeśli zakupiono urządzenia od producenta oryginalnego sprzętu (OEM) lub integratora rozwiązań, organizacja najprawdopodobniej udostępni ci pliki aktualizacji bez konieczności tworzenia aktualizacji. Skontaktuj się z integratorem OEM lub rozwiązaniem, aby dowiedzieć się, jak udostępniają aktualizacje.
Jeśli organizacja tworzy oprogramowanie dla używanych urządzeń, ta sama grupa utworzy aktualizacje dla tego oprogramowania.
Podczas tworzenia aktualizacji do wdrożenia przy użyciu usługi Device Update dla usługi IoT Hub zacznij od podejścia opartego na obrazie lub opartego na pakietach w zależności od scenariusza.
Tworzenie podstawowego manifestu importowania aktualizacji urządzeń
Po utworzeniu plików aktualizacji utwórz manifest importu, aby opisać aktualizację. Jeśli jeszcze tego nie zrobiono, zapoznaj się z podstawowymi pojęciami dotyczącymi importowania. Chociaż można ręcznie utworzyć plik JSON manifestu importu przy użyciu edytora tekstów, interfejs wiersza polecenia platformy Azure znacznie upraszcza proces i jest używany w poniższych przykładach.
Napiwek
Wypróbuj samouczki dotyczące aktualizacji opartej na obrazach, opartej na pakietach lub serwerze proxy, jeśli jeszcze tego nie zrobiono. Możesz również wyświetlić przykładowe pliki manifestu importu z tych samouczków, aby uzyskać informacje referencyjne.
Polecenie az iot du init v5 przyjmuje następujące argumenty:
--update-provider
,--update-name
i--update-version
: Te trzy parametry definiują obiekt updateId , który jest unikatowym identyfikatorem dla każdej aktualizacji.--compat
: Obiekt zgodności jest zestawem par name-value opisujących właściwości urządzenia, z którymi ta aktualizacja jest zgodna.- Nie można używać tego samego dokładnego zestawu właściwości zgodności z więcej niż jedną kombinacją dostawcy i nazwy.
--step
: Program obsługi aktualizacji na urządzeniu (na przykładmicrosoft/script:1
, lubmicrosoft/swupdate:1
microsoft/apt:1
) i skojarzone z nim właściwości dla tej aktualizacji.--file
: ścieżki do pliku lub plików aktualizacji.
Aby uzyskać więcej informacji na temat tych parametrów, zobacz Importowanie schematu i informacji o interfejsie API.
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>
Na przykład:
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
W przypadku właściwości programu obsługi może być konieczne ucieczka niektórych znaków w formacie JSON. Na przykład użyj polecenia '\'
, aby uniknąć podwójnych cudzysłowów, jeśli używasz interfejsu wiersza polecenia platformy Azure w programie PowerShell.
Polecenie init
obsługuje zaawansowane scenariusze, w tym funkcję powiązanych plików, która umożliwia zdefiniowanie relacji między różnymi plikami aktualizacji. Aby uzyskać więcej przykładów i pełną listę parametrów opcjonalnych, zobacz az iot du init v5.
Po utworzeniu manifestu importu i zapisaniu go jako pliku JSON możesz zaimportować aktualizację. Jeśli planujesz zaimportować interfejs użytkownika witryny Azure Portal, pamiętaj, aby nazwać manifest importu w następującym formacie: "<manifest>.importmanifest.json".
Tworzenie zaawansowanego manifestu importowania usługi Device Update dla aktualizacji serwera proxy
Jeśli aktualizacja jest bardziej złożona, na przykład aktualizacja serwera proxy, może być konieczne utworzenie wielu manifestów importu. Możesz użyć tego samego podejścia interfejsu wiersza polecenia platformy Azure z poprzedniej sekcji, aby utworzyć zarówno nadrzędny manifest importu, jak i pewną liczbę manifestów importu podrzędnego dla złożonych aktualizacji. Uruchom następujące polecenia interfejsu wiersza polecenia platformy Azure po zastąpieniu własnych przykładowych wartości parametrów. Aby uzyskać szczegółowe informacje na temat wartości, których można użyć, zobacz Importowanie schematu i interfejsu API. W poniższym przykładzie istnieją trzy aktualizacje do wdrożenia na urządzeniu: jedna aktualizacja nadrzędna i dwie aktualizacje podrzędne:
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> \