Importowanie aktualizacji do usługi Device Update dla IoT Hub

Aby wdrożyć aktualizację na urządzeniach z usługi Device Update dla IoT Hub, należy najpierw zaimportować aktualizację do usługi Device Update. Zaimportowana aktualizacja będzie przechowywana w usłudze Device Update i może zostać wdrożona z niej na urządzeniach. 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. Manifest importu i skojarzone pliki aktualizacji lub pliki (takie jak pakiet aktualizacji oprogramowania układowego) są przesyłane w ramach procesu importowania. 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 poprawnie zainstalowana.

Przykład:

{
  "updateId": {
    "provider": "Contoso",
    "name": "Toaster",
    "version": "1.0"
  },
  "isDeployable": false,
  "compatibility": [
    {
      "manufacturer": "Contoso",
      "model": "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": "5.0"
}

Manifest importu zawiera kilka elementów reprezentujących ważną aktualizację urządzenia dla pojęć IoT Hub. Te elementy zostały opisane w tej sekcji. Aby uzyskać informacje o pełnym schemacie importu, zobacz Import manifest JSON schema (Importowanie schematu JSON manifestu).

Aktualizowanie tożsamości

Identyfikator aktualizacji lub updateId jest unikatowym identyfikatorem aktualizacji w usłudze Device Update for IoT Hub. Składa się z trzech części:

  • Dostawca: jednostka, która tworzy lub bezpośrednio odpowiada za aktualizację. Często będzie to nazwa firmy.
  • Nazwa: identyfikator klasy aktualizacji. Często będzie to nazwa klasy urządzenia lub modelu.
  • Wersja: numer wersji wyróżniający tę aktualizację od innych osób, które mają tego samego dostawcę i nazwę.

Przykład:

{
  "updateId": {
    "provider": "Contoso",
    "name": "Toaster",
    "version": "1.0"
  }
}

Uwaga

UpdateId jest używany tylko przez usługę Device Update i może się różnić 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 on 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óra może zostać wdrożona tylko na urządzeniu, które zgłasza firmę Contoso i Toster jako producenta i model urządzenia.

{
  "compatibility": [
    {
      "manufacturer": "Contoso",
      "model": "Toaster"
    }
  ]
}

Instrukcje

Część Instrukcje zawiera niezbędne informacje lub kroki agenta urządzenia w celu zainstalowania aktualizacji. Najprostsza aktualizacja zawiera pojedynczy krok wbudowany. Ten krok wykonuje dołączony plik ładunku przy użyciu procedury obsługi zarejestrowanej w agencie urządzenia:

{
  "instructions": {
    "steps": [
      {
        "handler": "microsoft/swupdate:1",
        "files": [
          "contoso.toaster.1.0.swu"
        ]
      }
    ]
  }
}

Porada

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 całkowicie zainstalować inną aktualizację z własnym manifestem importu, ustanawiając relację aktualizacji nadrzędnej i podrzędnej. Na przykład aktualizacja 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, takie jak ich nazwy, rozmiary i skrót. Usługa Device Update dla 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

Chociaż można ręcznie utworzyć plik JSON manifestu importu przy użyciu edytora tekstów, interfejs wiersza polecenia platformy Azure znacznie upraszcza proces. Gdy wszystko będzie gotowe do wypróbowania tworzenia manifestu importu, możesz użyć przewodnika Instrukcje.

Ważne

Nazwa pliku JSON manifestu importu musi kończyć się .importmanifest.json po zaimportowaniu do Azure Portal.

Porada

Użyj Visual Studio Code, aby włączyć automatyczne uzupełnianie i walidację schematu JSON podczas tworzenia manifestu importu.

Limity dotyczące importowania aktualizacji

Niektóre limity są wymuszane dla każdej aktualizacji urządzenia dla wystąpienia IoT Hub. Jeśli jeszcze ich nie przejrzeno, zobacz Limity aktualizacji urządzeń.

Następne kroki