Sdílet prostřednictvím


Koncepty importu služby Azure Device Update pro IoT Hub

Pokud chcete nasadit aktualizaci na zařízení pomocí služby Azure Device Update pro IoT Hub, nejprve naimportujete aktualizaci do služby Device Update, která uloží importovanou aktualizaci a nasadí ji do zařízení. Tento článek obsahuje přehled některých důležitých konceptů, které vám porozumí při importu aktualizací.

Import manifestu

Manifest importu je soubor JSON, který definuje důležité informace o importu aktualizace. V rámci procesu importu odešlete manifest importu i přidružený soubor aktualizace nebo soubory, například balíček aktualizace firmwaru. Metadata definovaná v manifestu importu se používají k ingestování aktualizace. Některá metadata se také používají v době nasazení, například k ověření, jestli je aktualizace správně nainstalovaná.

Následující kód JSON ukazuje příklad souboru 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"
}

Oddíly souboru manifestu importu představují důležité koncepty aktualizace zařízení, jak je popsáno v následujících částech. Informace o úplném schématu manifestu importu naleznete v tématu Import schématu JSON manifestu.

Aktualizace identity

Identita aktualizace nebo updateId jedinečný identifikátor aktualizace ve službě Device Update a obsahuje následující vlastnosti:

  • Zprostředkovatel je entita, která vytváří nebo je zodpovědná za aktualizaci. Zprostředkovatel je často název společnosti.
  • Název je identifikátor třídy aktualizace. Název je často název třídy zařízení nebo modelu.
  • Verze je číslo, které rozlišuje tuto aktualizaci od ostatních se stejným poskytovatelem a názvem.

Příklad:

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

Poznámka:

Používá updateId se pouze službou Device Update a liší se od identit softwarových komponent na zařízeních.

Kompatibilita

Oddíl Kompatibilita používá k definování zařízení, která mohou nainstalovat aktualizaci, jeden nebo více dvojic klíč-hodnota. K nasazení aktualizace mají nárok jenom zařízení, která hlásí vlastnosti odpovídající hodnotám kompatibility. Aktualizaci můžete provést kompatibilní s více třídami zařízení tak, že zahrnete více než jednu sadu vlastností kompatibility zařízení.

Následující příklad ukazuje aktualizaci, která se dá nasadit jenom na zařízení, která hlásí Contoso a Toustovač jako výrobce a model zařízení.

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

Pokyny

Část Pokyny obsahuje potřebné informace nebo kroky pro instalaci aktualizace agentem zařízení. Nejjednodušší aktualizace obsahuje jeden vložený krok, který spustí soubor datové části aktualizace pomocí obslužné rutiny zaregistrované v agentovi zařízení. Následující příklad ukazuje část s pokyny s jedním krokem.

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

Poznámka:

Vlastnost handler je ekvivalentní vlastnosti v manifestu importu updateType verze 3.0 nebo starší.

Aktualizace může obsahovat více než jeden krok, například v následujícím příkladu:

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

Aktualizace může obsahovat referenční kroky, které agentovi zařízení dávají pokyn, aby nainstaloval jinou aktualizaci s vlastním manifestem importu a navazováním vztahu nadřazenosti a podřízené aktualizace. Aktualizace může obsahovat libovolnou kombinaci vložených a referenčních kroků.

Například aktualizace toustovače může obsahovat dvě podřízené aktualizace:

{
  "instructions": {
    "steps": [
      {
        "type": "reference",
        "updateId": {
          "provider": "Contoso",
          "name": "Toaster.HeatingElement",
          "version": "1.0"
        }
      },
      {
        "type": "reference",
        "updateId": {
          "provider": "Contoso",
          "name": "Toaster.Sensors",
          "version": "1.0"
        }
      }
    ]
  }
}

Soubory

Oddíl Soubory manifestu importu obsahuje metadata souboru datové části aktualizace, jako je name, sizea hash. Služba Device Update používá tato metadata k ověření integrity během procesu importu a před instalací předá agentovi zařízení stejné informace o ověření integrity.

Poznámka:

Nadřazená aktualizace, která obsahuje pouze referenční kroky, nedefinuje žádné soubory datové části aktualizace.

Vytvoření manifestu importu

I když je možné vytvořit JSON manifestu importu ručně pomocí textového editoru, Azure CLI proces výrazně zjednodušuje. Až budete připraveni vyzkoušet vytvoření manifestu importu, můžete použít průvodce postupy.

Důležité

Pokud chcete importovat do služby Device Update prostřednictvím webu Azure Portal, musí název souboru JSON manifestu importu končit .importmanifest.json.

Tip

Visual Studio Code můžete použít k povolení automatického dokončování a ověřování schématu JSON při vytváření manifestu importu.

Aktualizace limitů importu

Pro každou instanci služby IoT Hub se vynucují určitá omezení. Pokud jste je ještě nezkontrolovali, podívejte se na limity služby Device Update.