Udostępnij przez


Importowanie aktualizacji do usługi Device Update dla usługi IoT Hub

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