Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Aby wdrożyć aktualizację na urządzeniach z usługi Device Update dla usługi IoT Hub, należy najpierw zaimportować aktualizację do usługi Device Update. Ten artykuł zawiera omówienie niektórych ważnych pojęć, które należy zrozumieć, jeśli chodzi o importowanie aktualizacji.
Importowanie manifestu
Manifest importu to plik JSON, który definiuje ważne informacje o importowanych aktualizacjach. W ramach procesu importowania przesyłasz zarówno manifest importu, jak i skojarzony plik aktualizacji lub pliki (takie jak pakiet aktualizacji oprogramowania układowego). Metadane zdefiniowane w manifeście importu są używane do pozyskiwania aktualizacji. Niektóre metadane są również używane w czasie wdrażania — na przykład w celu sprawdzenia, czy aktualizacja została zainstalowana poprawnie.
Na przykład:
{
"updateId": {
"provider": "Contoso",
"name": "Toaster",
"version": "1.0"
},
"isDeployable": false,
"compatibility": [
{
"deviceManufacturer": "Contoso",
"deviceModel": "Toaster"
}
],
"instructions": {
"steps": [
{
"handler": "microsoft/swupdate:1",
"files": [
"firmware.swu"
],
"handlerProperties": {
"installedCriteria": "1.0"
}
}
]
},
"files": [
{
"filename": "firmware.swu",
"sizeInBytes": 7558,
"hashes": {
"sha256": "/CD7Sn6fiknWa3NgcFjGlJ+ccA81s1QAXX4oo5GHiFA="
}
}
],
"createdDateTime": "2022-01-19T06:23:52.6996916Z",
"manifestVersion": "4.0"
}
Manifest importu zawiera kilka elementów reprezentujących ważne pojęcia dotyczące aktualizacji urządzenia dla usługi IoT Hub. Te elementy zostały opisane w tej sekcji. Aby uzyskać informacje na temat schematu pełnego importu, zobacz Importowanie schematu JSON manifestu.
Aktualizowanie tożsamości
Tożsamość aktualizacji lub updateId to jednoznaczny identyfikator aktualizacji w usłudze Device Update dla IoT Hub. Składa się z trzech części:
- Dostawca: jednostka tworząca lub bezpośrednio odpowiedzialna za aktualizację. Często będzie to nazwa firmy.
- Nazwa: identyfikator klasy aktualizacji. Często będzie to nazwa klasy lub modelu urządzenia.
- Wersja: numer wersji wyróżniający tę aktualizację od innych, którzy mają tego samego dostawcę i nazwę.
Na przykład:
{
"updateId": {
"provider": "Contoso",
"name": "Toaster",
"version": "1.0"
}
}
Uwaga
UpdateId jest używany tylko przez usługę Device Update i może różnić się od tożsamości rzeczywistych składników oprogramowania na urządzeniu.
Zgodność
Zgodność definiuje kryteria urządzenia, które może zainstalować aktualizację. Zawiera właściwości urządzenia, które są zestawem dowolnych par wartości klucza, które są zgłaszane z urządzenia. Tylko urządzenia z pasującymi właściwościami będą kwalifikować się do wdrożenia. Aktualizacja może być zgodna z wieloma klasami urządzeń, mając więcej niż jeden zestaw właściwości urządzenia.
Oto przykład aktualizacji, którą można wdrożyć tylko na urządzeniu, które zgłasza firmę Contoso i Toster jako producenta i model urządzenia.
{
"compatibility": [
{
"deviceManufacturer": "Contoso",
"deviceModel": "Toaster"
}
]
}
Instrukcje
Część Instrukcje zawiera niezbędne informacje lub kroki agenta urządzenia w celu zainstalowania aktualizacji. Najprostsza aktualizacja zawiera pojedynczy krok wewnętrzny. Ten krok wykonuje dołączony plik ładunku przy użyciu programu obsługi zarejestrowanego w agencie urządzenia:
{
"instructions": {
"steps": [
{
"handler": "microsoft/swupdate:1",
"files": [
"contoso.toaster.1.0.swu"
]
}
]
}
}
Wskazówka
handler jest odpowiednikiem updateType w wersji manifestu importu w wersji 3.0 lub starszej.
Aktualizacja może zawierać więcej niż jeden krok:
{
"instructions": {
"steps": [
{
"description": "pre-install script",
"handler": "microsoft/script:1",
"handlerProperties": {
"arguments": "--pre-install"
},
"files": [
"configure.sh"
]
},
{
"description": "firmware package",
"handler": "microsoft/swupdate:1",
"files": [
"contoso.toaster.1.0.swu"
]
}
]
}
}
Aktualizacja może zawierać kroki referencyjne, które instruują agenta urządzenia, aby zainstalować inną aktualizację z własnym manifestem importu, ustanawiając hierarchiczny związek aktualizacji nadrzędnej i podrzędnej. Na przykład aktualizacja dla tostera może zawierać dwie aktualizacje podrzędne:
{
"instructions": {
"steps": [
{
"type": "reference",
"updateId": {
"provider": "Contoso",
"name": "Toaster.HeatingElement",
"version": "1.0"
}
},
{
"type": "reference",
"updateId": {
"provider": "Contoso",
"name": "Toaster.Sensors",
"version": "1.0"
}
}
]
}
}
Uwaga
Aktualizacja może zawierać dowolną kombinację kroków wbudowanych i referencyjnych.
Pliki
Część Pliki zawiera metadane plików ładunku aktualizacji, takich jak ich nazwy, rozmiary i skrót. Usługa Device Update dla usługi IoT Hub używa tych metadanych do weryfikacji integralności podczas procesu importowania. Te same informacje są następnie przekazywane do agenta urządzenia, aby powtórzyć walidację integralności przed instalacją.
Uwaga
Aktualizacja zawierająca tylko kroki referencyjne nie będzie zawierać żadnego pliku ładunku aktualizacji w aktualizacji nadrzędnej.
Tworzenie manifestu importu
Możesz użyć dowolnego edytora tekstów do utworzenia pliku JSON manifestu importu. Istnieją również przykładowe skrypty służące do programowego tworzenia manifestu importu na platformie Azure/iot-hub-device-update w usłudze GitHub.
Ważne
Nazwa pliku JSON manifestu importu musi kończyć się importem .importmanifest.json po zaimportowaniu za pośrednictwem witryny Azure Portal.
Wskazówka
Użyj programu Visual Studio Code , aby włączyć automatyczne uzupełnianie i walidację schematu JSON podczas tworzenia manifestu importu.
Limity importowania aktualizacji
Dla każdego wystąpienia usługi IoT Hub są wymuszane pewne limity. Jeśli jeszcze ich nie przejrzeno, zobacz Limity aktualizacji urządzeń.
Następne kroki
- Aby dowiedzieć się więcej na temat procesu importowania, zobacz Przygotowywanie aktualizacji do zaimportowania.
- Przejrzyj schemat manifestu importu.