Aktualizacja urządzenia dla usług IoT Hub i IoT Plug and Play
Usługa Device Update dla usługi IoT Hub używa technologii IoT Plug and Play do odnajdywania urządzeń obsługujących aktualizację za pośrednictwem powietrza i zarządzania nimi. Usługa Device Update wysyła i odbiera właściwości oraz komunikaty do i z urządzeń przy użyciu interfejsów IoT Plug and Play.
Więcej informacji można znaleźć na stronie
- Zapoznaj się z klientem urządzenia IoT Plug and Play.
- Zobacz, jak zaimplementowano agenta usługi Device Update.
Modele aktualizacji urządzeń
Identyfikator modelu to sposób, w jaki inteligentne urządzenia anonsują swoje możliwości w aplikacjach usługi Azure IoT za pomocą usługi IoT Plug i Play.To dowiedzieć się więcej na temat tworzenia inteligentnych urządzeń w celu anonsowania ich możliwości w aplikacjach usługi Azure IoT, odwiedź przewodnik dewelopera rozwiązań IoT Plug and Play.
Aktualizacja urządzenia dla usługi IoT Hub wymaga, aby inteligentne urządzenie IoT Plug and Play ogłosiło identyfikator modelu w ramach połączenia urządzenia. Dowiedz się, jak ogłosić identyfikator modelu.
W usłudze Device Update zdefiniowano kilka modeli PnP, które obsługują funkcje DU. Model aktualizacji urządzeń "dtmi:azure:iot:deviceUpdateContractModel; 3" obsługuje podstawowe funkcje i używa podstawowego interfejsu aktualizacji urządzenia do wysyłania akcji aktualizacji i metadanych do urządzeń i odbierania stanu aktualizacji z urządzeń.
Innym obsługiwanym modelem jest dtmi:azure:iot:deviceUpdateModel; 3 , które rozszerza model deviceUpdateContractModel; 3 , a także używa innych interfejsów PnP, które wysyłają właściwości i informacje o urządzeniu oraz włączają funkcje diagnostyczne. Dowiedz się więcej o [Modelach aktualizacji urządzeń i wersjach interfejsów] (https://github.com/Azure/iot-plugandplay-models/tree/main/dtmi/azure/iot).
Agent usługi Device Update używa elementu dtmi:azure:iot:deviceUpdateModel; 3 , które obsługuje wszystkie najnowsze funkcje w wersji 1.1.0. Ten model obsługuje wersję manifestu V5. Starsze manifesty będą działać z najnowszymi agentami, ale nowe funkcje wymagają użycia najnowszej wersji manifestu.
Metadane agenta
Agent usługi Device Update używa pól metadanych agenta do wysyłania informacji do usług Device Update.
Nazwisko | Schemat | Kierunek | opis | Przykład |
---|---|---|---|---|
deviceProperties | Mapowanie | urządzenie do chmury | Zestaw właściwości, które zawierają informacje o producentach, modelu i innych urządzeniach. | Aby uzyskać szczegółowe informacje, zobacz sekcję Właściwości urządzenia. |
compatPropertyNames | Ciąg (rozdzielony przecinkami) | urządzenie do chmury | Urządzenie zgłosiło właściwości, które są używane do sprawdzania zgodności urządzenia pod kątem wdrożenia aktualizacji. Ograniczone do pięciu właściwości urządzenia. | "compatPropertyNames": "manufacturer,model" |
lastInstallResult | Mapowanie | urządzenie do chmury | Wynik zgłoszony przez agenta. Zawiera on kod wyników, rozszerzony kod wyników i szczegóły wyników dla głównej aktualizacji i innych aktualizacji kroków. | |
resultCode | integer | urządzenie do chmury | Kod zawierający informacje o wyniku ostatniej akcji aktualizacji. Może zostać wypełniony powodzeniem lub niepowodzeniem. | 700 |
extendedResultCode | integer | urządzenie do chmury | Kod zawierający dodatkowe informacje o wyniku. Może zostać wypełniony powodzeniem lub niepowodzeniem. | 0x80004005 |
resultDetails | string | urządzenie do chmury | Dowolny ciąg formularza zdefiniowany przez klienta w celu podania dodatkowych szczegółów wyników. Powrót do bliźniaczej reprezentacji bez analizowania | |
stepResults | map | urządzenie do chmury | Wynik zgłoszony przez agenta zawierającego kod wyniku, rozszerzony kod wyniku i szczegóły wyniku dotyczące aktualizacji kroków. | "step_1": { "resultCode": 0,"extendedResultCode": 0, "resultDetails": ""} |
stan | integer | urządzenie do chmury | Liczba całkowita wskazująca bieżący stan agenta usługi Device Update. | Aby uzyskać szczegółowe informacje, zobacz sekcję Stan . |
przepływ pracy | complex | urządzenie do chmury | Zestaw wartości wskazujących, nad którym wdrożeniem aktualnie pracuje agent, identyfikator bieżącego wdrożenia i potwierdzenie każdego żądania ponawiania próby wysłanego z usługi do agenta. Należy pamiętać, że identyfikator przepływu pracy zgłasza wartość "nodeployment" po anulowaniu wdrożenia. | "workflow": {"action": 3,"ID": "11b6a7c3-6956-4b33-b5a9-87fdd79d2f01","retryTimestamp": "2022-01-26T11:33:29.9680598Z"} |
installedUpdateId | string | urządzenie do chmury | Identyfikator aktualnie zainstalowanej aktualizacji (za pośrednictwem usługi Device Update). Ta wartość to ciąg przechwytujący kod JSON aktualizacji identyfikatora aktualizacji lub wartość null dla urządzenia, które nigdy nie dokonało aktualizacji za pośrednictwem usługi Device Update. | installedUpdateID{"provider":"contoso","name":"image-update","version":"1.0.0"}" |
Właściwości urządzenia
Pole deviceProperties zawiera informacje o producencie i modelu dla urządzenia.
Nazwisko | Schemat | Kierunek | opis |
---|---|---|---|
manufacturer | string | urządzenie do chmury | Producent urządzenia zgłaszany za pośrednictwem deviceProperties polecenia . Ta właściwość jest odczytywana z jednego z dwóch miejsc — najpierw interfejs DeviceUpdateCore próbuje odczytać wartość "aduc_manufacturer" z pliku konfiguracji. Jeśli wartość nie zostanie wypełniona w pliku konfiguracji, domyślną wartością jest raportowanie definicji czasu kompilacji dla ADUC_DEVICEPROPERTIES_MANUFACTURER. Ta właściwość jest zgłaszana tylko w czasie rozruchu. Wartość domyślna: "Contoso". |
model | string | urządzenie do chmury | Model urządzenia zgłoszony za pośrednictwem deviceProperties elementu . Ta właściwość jest odczytywana z jednego z dwóch miejsc — najpierw interfejs DeviceUpdateCore próbuje odczytać wartość "aduc_model" z pliku konfiguracji. Jeśli wartość nie zostanie wypełniona w pliku konfiguracji, wartość domyślna to raportowanie definicji czasu kompilacji dla ADUC_DEVICEPROPERTIES_MODEL. Ta właściwość jest zgłaszana tylko w czasie rozruchu. Wartość domyślna: "Wideo" |
contractModelId | string | urządzenie do chmury | Ta właściwość jest używana przez usługę do identyfikowania podstawowej wersji modelu używanej przez agenta usługi Device Update do zarządzania agentem i komunikowania się z nim. Wartość: "dtmi:azure:iot:deviceUpdateContractModel; 3' dla urządzeń korzystających z agenta DU w wersji 1.1.0. Uwaga: Agenci korzystający z elementu "dtmi:azure:iot:deviceUpdateModel; 2" musi zgłosić identyfikator contractModelId jako "dtmi:azure:iot:deviceUpdateContractModel; 3' jako deviceUpdateModel; 3 zostało rozszerzone z elementu deviceUpdateContractModel; 3 |
aduVer | string | urządzenie do chmury | Wersja agenta usługi Device Update uruchomionego na urządzeniu. Ta wartość jest odczytywana z kompilacji tylko wtedy, gdy ENABLE_ADU_TELEMETRY_REPORTING jest ustawiona na 1 (true) w czasie kompilacji. Klienci mogą zrezygnować z raportowania wersji, ustawiając wartość 0 (false). Jak dostosować właściwości agenta usługi Device Update. |
Dover | string | urządzenie do chmury | Wersja agenta optymalizacji dostarczania uruchomionego na urządzeniu. Wartość jest odczytywana z kompilacji tylko wtedy, gdy ENABLE_ADU_TELEMETRY_REPORTING jest ustawiona na 1 (true) w czasie kompilacji. Klienci mogą zrezygnować z raportowania wersji, ustawiając wartość 0 (false). Jak dostosować właściwości agenta optymalizacji dostarczania. |
Właściwości zgodności niestandardowej | Zdefiniowane przez użytkownika | urządzenie do chmury | Implementator może zdefiniować inne właściwości urządzenia, które mają być używane do sprawdzania zgodności podczas określania celu wdrożenia aktualizacji. |
Przykład bliźniaczej reprezentacji urządzenia usługi IoT Hub:
"deviceUpdate": {
"__t": "c",
"agent": {
"deviceProperties": {
"manufacturer": "contoso",
"model": "virtual-vacuum-v1",
"contractModelId": "dtmi:azure:iot:deviceUpdateContractModel;3",
"aduVer": "DU;agent/1.1.0",
},
"compatPropertyNames": "manufacturer,model",
"lastInstallResult": {
"resultCode": 700,
"extendedResultCode": 0,
"resultDetails": "",
"stepResults": {
"step_0": {
"resultCode": 700,
"extendedResultCode": 0,
"resultDetails": ""
}
}
},
"state": 0,
"workflow": {
"action": 3,
"id": "11b6a7c3-6956-4b33-b5a9-87fdd79d2f01",
"retryTimestamp": "2022-01-26T11:33:29.9680598Z"
},
"installedUpdateId": "{\"provider\":\"Contoso\",\"name\":\"Virtual-Vacuum\",\"version\":\"5.0\"}"
},
Uwaga
Urządzenie lub moduł musi dodać {"__t": "c"}
znacznik, aby wskazać, że element odwołuje się do składnika. Aby uzyskać więcej informacji, zobacz Konwencje IoT Plug and Play.
Stan
Pole Stan to stan zgłaszany przez agenta aktualizacji urządzenia (DU) po otrzymaniu akcji z usługi Device Update. Stan jest zgłaszany w odpowiedzi na akcję (zobacz sekcję Akcja, aby uzyskać szczegółowe informacje) wysyłany do agenta usługi Device Update z usługi Device Update. Aby uzyskać więcej informacji na temat żądań przepływu między usługą Device Update i agentem usługi Device Update, zobacz przepływ pracy przeglądu.
Nazwa/nazwisko | Wartość | Opis |
---|---|---|
Okresy | 0 | Urządzenie jest gotowe do otrzymania akcji z usługi Device Update. Po pomyślnej aktualizacji stan jest zwracany do Idle stanu. |
DeploymentInprogress | 6 | Wdrożenie jest w toku. |
Niepowodzenie | 255 | Wystąpił błąd podczas aktualizowania. |
DownloadSucceed | 2 | Pomyślne pobranie. Ten stan jest zgłaszany tylko przez urządzenia z agentem w wersji 0.7.0 lub starszej. |
InstallSucceeded | 100 | Pomyślna instalacja. Ten stan jest zgłaszany tylko przez urządzenia z agentem w wersji 0.7.0 lub starszej. |
Metadane usługi
Metadane usługi zawierają pola używane przez usługi Device Update do przekazywania akcji i danych agentowi usługi Device Update.
Nazwisko | Schemat | Kierunek | opis |
---|---|---|---|
action | integer | chmura-urządzenie | Liczba całkowita odpowiadająca akcji, którą powinien wykonać agent. Aby uzyskać szczegółowe informacje, zobacz sekcję Akcja . |
updateManifest | string | chmura-urządzenie | Służy do opisywania zawartości aktualizacji. Wygenerowany na podstawie manifestu importu. |
updateManifestSignature | Obiekt JSON | chmura-urządzenie | Sygnatura internetowa JSON (JWS) z kluczami sieci Web JSON używanymi do weryfikacji źródła. |
fileUrls | Mapowanie | chmura-urządzenie | Mapuj na FileID DownloadUrl . Informuje agenta, które pliki mają być pobierane, a skrót do użycia w celu sprawdzenia, czy pliki zostały pobrane poprawnie. |
Akcja
Pole akcji reprezentuje akcje wykonywane przez agenta usługi Device Update zgodnie z instrukcją usługi Device Update. Agent usługi Device Update zgłosi stan przetwarzania odebranej akcji. Aby uzyskać więcej informacji na temat żądań przepływu między usługą Device Update i agentem usługi Device Update, zobacz przepływ pracy przeglądu.
Nazwa/nazwisko | Wartość | Opis |
---|---|---|
applyDeployment | 3 | Zastosuj aktualizację. Sygnały do urządzenia w celu zastosowania wdrożonej aktualizacji |
Anuluj | 255 | Zatrzymaj przetwarzanie bieżącej akcji i wróć do Idle , lub poinformuj agenta Failed w stanie, aby wrócić do Idle . |
download | 0 | Pobierz opublikowaną zawartość lub aktualizację i wymaganą inną zawartość. Ta akcja jest wysyłana tylko do urządzeń z agentem w wersji 0.7.0 lub starszej. |
instalacja | 1 | Zainstaluj zawartość lub aktualizację. Zazwyczaj ta akcja oznacza wywołanie instalatora zawartości lub aktualizacji. Ta akcja jest wysyłana tylko do urządzeń z agentem w wersji 0.7.0 lub starszej. |
apply | 2 | Finalizuj aktualizację. W razie potrzeby sygnalizuje ponowne uruchomienie systemu. Ta akcja jest wysyłana tylko do urządzeń z agentem w wersji 0.7.0 lub starszej. |
Interfejs informacji o urządzeniu
Interfejs informacyjny urządzenia jest koncepcją używaną w architekturze IoT Plug and Play. Zawiera on właściwości urządzenia do chmury, które zawierają informacje o sprzęcie i systemie operacyjnym urządzenia. Usługa Device Update dla usługi IoT Hub używa DeviceInformation.manufacturer
właściwości i DeviceInformation.model
do telemetrii i diagnostyki. Aby dowiedzieć się więcej, zobacz ten przykład interfejsu informacji o urządzeniu.
Oczekiwana nazwa składnika w modelu to deviceInformation po zaimplementowaniu tego interfejsu. Dowiedz się więcej o składnikach usługi Azure IoT Plug and Play
Nazwisko | Typ | Schemat | Kierunek | opis | Przykład |
---|---|---|---|---|---|
manufacturer | Właściwości | string | urządzenie do chmury | Nazwa firmy producenta urządzenia. Ta właściwość może być taka sama jak nazwa producenta oryginalnego sprzętu (OEM). | Contoso |
model | Właściwości | string | urządzenie do chmury | Nazwa lub identyfikator modelu urządzenia. | Urządzenie usługi IoT Edge |
swVersion | Właściwości | string | urządzenie do chmury | Wersja oprogramowania na urządzeniu. swVersion może być wersją oprogramowania układowego. | 4.15.0-122 |
osName | Właściwości | string | urządzenie do chmury | Nazwa systemu operacyjnego na urządzeniu. | Ubuntu Server 18.04 |
processorArchitecture | Właściwości | string | urządzenie do chmury | Architektura procesora na urządzeniu. | ARM64 |
processorManufacturer | Właściwości | string | urządzenie do chmury | Nazwa producenta procesora na urządzeniu. | Microsoft |
totalStorage | Właściwości | string | urządzenie do chmury | Łączna ilość dostępnego miejsca na urządzeniu w kilobajtach. | 2048 |
totalMemory | Właściwości | string | urządzenie do chmury | Łączna ilość dostępnej pamięci na urządzeniu w kilobajtach. | 256 |