Sdílet prostřednictvím


Import aktualizací do služby Device Update pro IoT Hub: schéma a další informace

Pokud chcete naimportovat aktualizaci do služby Device Update pro IoT Hub, nezapomeňte si nejprve projít koncepty a návody. Pokud vás zajímají podrobnosti samotného schématu manifestu importu, podívejte se níže.

Schéma JSON manifestu importu je hostované na SchemaStore.org.

Schéma

Vlastnost Type Popis Povinní účastníci
$schema string Referenční informace ke schématu JSON No
updateId updateId Jedinečný identifikátor aktualizace Ano
Popis string Volitelný popis aktualizace

Maximální délka: 512 znaků
No
Kompatibility compatibility Seznam sad vlastností zařízení, se kterými je tato aktualizace kompatibilní. Ano
Pokyny instructions Aktualizujte pokyny k instalaci. Ano
Soubory file [0-10] Seznam souborů datové části aktualizace Součet všech velikostí souborů nesmí překročit 2 GB. Pokud jsou všechny kroky pokynů referenčními kroky, může být prázdná nebo null. No
manifestVersion string Import verze schématu manifestu Musí být 5.0. Ano
createdDateTime string Manifest importu data a času byl vytvořen ve formátu ISO 8601.

Příklad: "2020-10-02T22:18:04.9446744Z"
Ano

Nejsou povoleny další vlastnosti.

UpdateId – objekt

Objekt updateID je jedinečný identifikátor pro každou aktualizaci.

Vlastnost Type Popis Povinní účastníci
Zprostředkovatel string Entita, která vytváří nebo přímo zodpovídá za aktualizaci. Může to být název společnosti.

Vzor: ^[a-zA-Z0-9.-]+$
Maximální délka: 64 znaků
Ano
Jméno string Identifikátor třídy aktualizace. Může to být třída zařízení nebo název modelu.

Vzor: ^[a-zA-Z0-9.-]+$
Maximální délka: 64 znaků
Ano
version string Dvoudílná tečka oddělená číselnými čísly verzí oddělených dvěma až čtyřmi částmi Každá část musí být číslo v rozsahu 0 až 2147483647 a počáteční nuly se zahodí.

Vzor: ^\d+(?:\.\d+)+$
Příklady: "1.0", "2021.11.8"
Ano

Nejsou povoleny další vlastnosti.

Příklad:

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

objekt kompatibility

Objekt kompatibility popisuje vlastnosti zařízení, se kterým je tato aktualizace kompatibilní.

  • Typ: object
  • Minimální vlastnosti: 1
  • Maximální počet vlastností: 5

Každá vlastnost je dvojice název-hodnota typu řetězec.

  • Minimální délka názvu vlastnosti: 1
  • Maximální délka názvu vlastnosti: 32
  • Minimální délka hodnoty vlastnosti: 1
  • Maximální délka hodnoty vlastnosti: 64

Stejnou sadu vlastností kompatibility nelze použít s více než jednou kombinací zprostředkovatele aktualizací a názvu.

Příklad:

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

objekt instructions

Objekt instrukcí poskytuje pokyny k instalaci aktualizace. Objekt instrukcí obsahuje seznam kroků, které se mají provést. Kroky můžou být kódem, který se má provést, nebo ukazatelem na jinou aktualizaci.

Vlastnost Type Popis Povinní účastníci
Kroky array[1-10] Každý prvek v poli musí být buď inlineStep objekt nebo referenceStep objektu. Ano

Nejsou povoleny další vlastnosti.

Příklad:

{
  "instructions": {
    "steps": [
      {
        "type": "inline",
        ...
      },
      {
        "type": "reference",
        ...
      }
    ]
  }
}

inlineStep – objekt

Vložený objekt kroku je instrukční krok instalace, který provádí provádění kódu.

Vlastnost Type Popis Povinní účastníci
type string Typ kroku instrukce, který provádí provádění kódu. Musí být inline.

Výchozí hodnota je inline , pokud není zadaná žádná hodnota.
No
Popis string Volitelný popis kroku instrukce.

Maximální délka: 64 znaků
No
Obslužné rutiny string Identita obslužné rutiny v zařízení, které může tento krok provést.

Vzor: ^\S+/\S+:\d{1,5}$
Minimální délka: 5 znaků
Maximální délka: 32 znaků
Příklady: microsoft/script:1, microsoft/swupdate:1, microsoft/apt:1
Ano
Soubory string [1-10] Názvy aktualizačních souborů definovaných jako objekty souborů, které agent předá obslužné rutině. Každý prvek v poli musí mít délku 1 až 255 znaků. Ano
Obslužná rutina inlineStepHandlerProperties Objekt JSON, který agent předá obslužné rutině jako argumenty. No

Nejsou povoleny další vlastnosti.

Příklad:

{
  "steps": [
    {
      "description": "pre-install script",
      "handler": "microsoft/script:1",
      "handlerProperties": {
        "arguments": "--pre-install"
      },
      "files": [
        "configure.sh"
      ]
    }
  ]
}

referenceStep – objekt

Objekt referenčního kroku je instrukční krok instalace, který nainstaluje další aktualizaci.

Vlastnost Type Popis Povinní účastníci
type referenceStepType Typ kroku instrukce, který nainstaluje jinou aktualizaci. Musí být reference. Ano
Popis stepDescription Volitelný popis kroku instrukce.

Maximální délka: 64 znaků
No
updateId updateId Jedinečný identifikátor aktualizace Ano

Nejsou povoleny další vlastnosti.

Příklad:

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

objekt file

Objekt souboru je soubor datové části aktualizace, například binární soubor, firmware, skript atd. Každý objekt souboru musí být v rámci aktualizace jedinečný.

Vlastnost Type Popis Povinní účastníci
filename string Aktualizujte název souboru datové části.

Maximální délka: 255 znaků
Ano
sizeInBytes number Velikost souboru v počtu bajtů

Maximální velikost: 2147483648 bajtů
Ano
Hash fileHashes Hodnoty hash souborů s kódováním Base64 s názvem algoritmu jako klíčem Musí být zadán alespoň algoritmus SHA-256 a v případě podpory agenta může být zadán další algoritmus. Podrobnosti o výpočtu hodnoty hash najdete níže. Ano
relatedFiles relatedFile[0-4] Kolekce souvisejících souborů s jedním nebo více primárními datovými částmi. No
downloadHandler downloadHandler Určuje, jak zpracovat všechny související soubory. Ano pouze v případě, že používáte relatedFiles.

Nejsou povoleny další vlastnosti.

Příklad:

{
  "files": [
    {
      "filename": "configure.sh",
      "sizeInBytes": 7558,
      "hashes": {...}
    }
  ]
}

fileHashes – objekt

Hodnoty hash souboru s kódováním Base64 s názvem algoritmu jako klíčem Musí být zadán alespoň algoritmus SHA-256 a v případě podpory agenta je možné zadat další algoritmy. Příklad správného výpočtu hodnoty hash naleznete ve skriptu AduUpdate.psm1 pomocí funkce Get-AduFileHashes.

Vlastnost Type Popis Povinní účastníci
sha256 string Hodnota hash souboru s kódováním Base64 pomocí algoritmu SHA-256 Ano

Jsou povoleny další vlastnosti.

Příklad:

{
  "hashes": {
    "sha256": "/CD7Sn6fiknWa3NgcFjGlJ+ccA81s1QAXX4oo5GHiFA="
  }
}

relatedFiles – objekt

Kolekce souvisejících souborů s jedním nebo více primárními datovými částmi.

Vlastnost Type Popis Povinní účastníci
filename string Seznam souvisejících souborů přidružených k primárnímu souboru datové části Ano
sizeInBytes number Velikost souboru v počtu bajtů

Maximální velikost: 2147483648 bajtů
Ano
Hash fileHashes Hodnoty hash souborů s kódováním Base64 s názvem algoritmu jako klíčem Musí být zadán alespoň algoritmus SHA-256 a v případě podpory agenta může být zadán další algoritmus. Podrobnosti o výpočtu hodnoty hash najdete níže. Ano
Vlastnosti relatedFilesProperties [0-5] Limit 5 párů klíč-hodnota, kde je klíč omezen na 64 znaků ASCII a hodnota je JObject (s až 256 znaky ASCII). No

Jsou povoleny další vlastnosti.

Příklad:

"relatedFiles": [
  {
    "filename": "in1_in2_deltaupdate.dat",
    "sizeInBytes": 102910752,
    "hashes": {
      "sha256": "2MIldV8LkdKenjJasgTHuYi+apgtNQ9FeL2xsV3ikHY="
    },
    "properties": {
      "microsoft.sourceFileHashAlgorithm": "sha256",
      "microsoft.sourceFileHash": "YmFYwnEUddq2nZsBAn5v7gCRKdHx+TUntMz5tLwU+24="
    }
  }
],

Další informace najdete v tématu Použití funkce souvisejících souborů k odkazování na více aktualizačních souborů.

objekt downloadHandler

Určuje, jak zpracovat všechny související soubory.

Vlastnost Type Popis Povinní účastníci
id string Identifikátor pro downloadHandler. Limit 64 znaků ASCII Ano

Další vlastnosti nejsou povoleny.

Příklad:

"downloadHandler": {
  "id": "microsoft/delta:1"
}

Další kroky

Přečtěte si další informace o konceptech importu.

Pokud jste připravení, vyzkoušejte si průvodce postupy importu, který vás provede procesem importu krok za krokem.