Udostępnij za pośrednictwem


Pojęcia dotyczące importowania usługi Azure Device Update dla usługi IoT Hub

Aby wdrożyć aktualizację na urządzeniach przy użyciu usługi Azure Device Update for IoT Hub, najpierw zaimportuj aktualizację do usługi Device Update, która przechowuje zaimportowaną aktualizację i wdraża ją 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. 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.

Poniższy kod JSON przedstawia przykładowy plik manifestu importu:

{
  "updateId": {
    "provider": "Contoso",
    "name": "Toaster",
    "version": "1.0"
  },
  "isDeployable": false,
  "compatibility": [
    {
      "manufacturer": "Contoso",
      "model": "Toaster"
    }
  ],
  "instructions": {
    "steps": [
      {
        "handler": "microsoft/swupdate:2",
        "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"
}

Sekcje pliku manifestu importu reprezentują ważne pojęcia dotyczące aktualizacji urządzeń, zgodnie z opisem w poniższych sekcjach. Aby uzyskać informacje na temat pełnego schematu manifestu importu, zobacz Importowanie schematu JSON manifestu.

Aktualizowanie tożsamości

Tożsamość aktualizacji lub updateId jest unikatowym identyfikatorem aktualizacji w usłudze Device Update i zawiera następujące właściwości:

  • Dostawca to jednostka, która tworzy aktualizację lub jest odpowiedzialna za aktualizację. Dostawca jest często nazwą firmy.
  • Nazwa to identyfikator klasy aktualizacji. Nazwa jest często nazwą klasy lub modelu urządzenia.
  • Wersja to liczba, która odróżnia tę aktualizację od innych osób o tej samej nazwie i dostawcy.

Na przykład:

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

Uwaga

Element updateId jest używany tylko przez usługę Device Update i różni się od tożsamości składników oprogramowania na urządzeniach.

Zgodność

Sekcja Zgodność używa co najmniej jednej dowolnej pary klucz-wartość do zdefiniowania urządzeń, które mogą zainstalować aktualizację. Tylko urządzenia, które zgłaszają właściwości zgodne z wartościami zgodności, kwalifikują się do wdrożenia aktualizacji. Aktualizację zgodną z wieloma klasami urządzeń można wprowadzić, uwzględniając więcej niż jeden zestaw właściwości zgodności urządzeń.

W poniższym przykładzie przedstawiono aktualizację, którą można wdrożyć tylko na urządzeniach, które zgłaszają firmy Contoso i Toster jako producenta i model urządzenia.

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

Instrukcje

Sekcja Instrukcje zawiera niezbędne informacje lub kroki agenta urządzenia w celu zainstalowania aktualizacji. Najprostsza aktualizacja zawiera pojedynczy krok wbudowany, który wykonuje plik ładunku aktualizacji przy użyciu programu obsługi zarejestrowanej w agencie urządzenia. W poniższym przykładzie przedstawiono sekcję instrukcji jednoetapowych.

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

Uwaga

Właściwość jest równoważna handlerupdateType właściwości w programie import manifestu w wersji 3.0 lub starszej.

Aktualizacja może zawierać więcej niż jeden krok, jak w poniższym przykładzie:

{
  "instructions": {
    "steps": [
      {
        "description": "pre-install script",
        "handler": "microsoft/script:1",
        "handlerProperties": {
          "arguments": "--pre-install"
        },
        "files": [
          "configure.sh"
        ]
      },
      {
        "description": "firmware package",
        "handler": "microsoft/swupdate:2",
        "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 relację aktualizacji nadrzędnej i podrzędnej. Aktualizacja może zawierać dowolną kombinację kroków wbudowanych i referencyjnych.

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"
        }
      }
    ]
  }
}

Pliki

Sekcja Pliki manifestu importu zawiera metadane pliku ładunku aktualizacji, takie jak name, sizei hash. Usługa Device Update używa tych metadanych do weryfikacji integralności podczas procesu importowania i przekazuje te same informacje do agenta urządzenia w celu weryfikacji integralności przed instalacją.

Uwaga

Aktualizacja nadrzędna zawierająca tylko kroki referencyjne nie definiuje żadnych plików ładunku aktualizacji.

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 ten proces. Gdy wszystko będzie gotowe do wypróbowania tworzenia manifestu importu, możesz użyć przewodnika Instrukcje.

Ważne

Aby zaimportować do usługi Device Update za pośrednictwem witryny Azure Portal, nazwa pliku JSON manifestu importu musi kończyć się .importmanifest.json.

Napiwek

Możesz użyć programu Visual Studio Code , aby włączyć autouzupełnianie i walidację schematu JSON podczas tworzenia manifestu importu.

Aktualizowanie limitów importu

Dla każdego wystąpienia usługi IoT Hub są wymuszane pewne limity. Jeśli jeszcze ich nie przejrzeno, zobacz Limity aktualizacji urządzeń.