Udostępnij za pośrednictwem


Schemat manifestu importowania usługi Azure Device Update dla usługi IoT Hub

Podczas importowania aktualizacji do usługi Azure Device Update for Iot Hub przesyłasz również skojarzony plik manifestu importu JSON, który definiuje ważne informacje o aktualizacji. W tym artykule opisano schemat używany do tworzenia pliku manifestu importu JSON.

Aby dowiedzieć się więcej na temat pojęć manifestu importu i struktury plików, zobacz Azure Device Update for IoT Hub import manifest (Manifest importowania usługi Azure Device Update for IoT Hub). Aby dowiedzieć się, jak utworzyć plik, zobacz Przygotowanie aktualizacji do zaimportowania do usługi Device Update for IoT Hub.

Schemat

Schemat JSON manifestu importu jest hostowany w SchemaStore.org i składa się z następujących właściwości. Żadne inne właściwości nie są dozwolone.

Właściwość Type Opis Wymagania
$schema string Dokumentacja schematu JSON. Nie.
updateId updateId Unikatowy identyfikator aktualizacji. Tak
opis string Opcjonalny opis aktualizacji. Maksymalna długość 512 znaków. Nie.
zgodność compatibility Lista zestawów właściwości urządzenia, z których ta aktualizacja jest zgodna. Tak
instrukcje instructions Aktualizowanie instrukcji instalacji. Tak
Pliki file [0-10] Lista plików ładunku aktualizacji. Suma wszystkich rozmiarów plików nie może przekroczyć 2 GB. Może być pusty lub mieć wartość null, jeśli wszystkie kroki instrukcji są krokami referencyjnymi. Nie.
manifestVersion string Importowanie wersji schematu manifestu. Musi mieć wartość 5.0. Tak
createdDateTime string Zaimportuj datę i godzinę utworzenia manifestu w formacie ISO 8601, na przykład "2020-10-02T22:18:04.9446744Z". Tak

Aktualizuj obiekt

Obiekt updateID jest unikatowym identyfikatorem każdej aktualizacji.

Właściwość Type Opis Wymagania
dostawca string Jednostka, która tworzy aktualizację lub odpowiada bezpośrednio za aktualizację. Dostawca może być nazwą firmy.
Deseń: ^[a-zA-Z0-9.-]+$
Maksymalna długość: 64 znaki
Tak
name string Identyfikator klasy aktualizacji. Nazwa może być nazwą klasy urządzenia lub modelu.
Deseń: ^[a-zA-Z0-9.-]+$
Maksymalna długość: 64 znaki
Tak
version string Od dwóch do czterech części rozdzielonych cyframi wersji liczbowych. Każda część musi być liczbą z zakresu od 0 do 2147483647, a zera wiodące są porzucane.
Deseń: ^\d+(?:\.\d+)+$
Przykłady: "1.0", "2021.11.8"
Tak

Żadne inne właściwości nie są dozwolone.

Na przykład:

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

Obiekt zgodności

Obiekt compatibility opisuje 1–5 właściwości urządzenia, z którymi ta aktualizacja jest zgodna. Każda właściwość jest parą string nazwa-wartość typu. Nazwa musi mieć długość od 1 do 32 znaków, a wartość musi mieć długość od 1 do 64 znaków. Nie można użyć tego samego dokładnie zestawu właściwości zgodności z więcej niż jedną kombinacją dostawcy aktualizacji i nazwy.

Na przykład:

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

Obiekt instrukcji

Obiekt instructions zawiera instrukcje instalacji aktualizacji. Obiekt instrukcji zawiera listę steps do wykonania. Żadne inne właściwości nie są dozwolone.

Kroki mogą być kodem do wykonania lub wskaźnikiem do innych aktualizacji. Obiekt kroku jest inline domyślnie domyślny, jeśli nie type podano żadnej wartości.

Właściwość Type Opis Wymagania
Kroki array[1-10] Każdy element w tablicy steps musi być wbudowanym obiektem kroku lub obiektem kroku odwołania. Tak

Na przykład:

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

Obiekt kroku wbudowanego

inline Obiekt kroku to krok instrukcji instalacji, który wykonuje wykonywanie kodu.

Właściwość Type Opis Wymagania
type string Typ kroku instrukcji, który wykonuje wykonywanie kodu. Musi mieć wartość inline. Wartość domyślna to inline , jeśli nie podano żadnej wartości. Nie.
opis string Opcjonalny opis kroku instrukcji. Maksymalna długość: 64 znaki. Nie.
Obsługi string Tożsamość programu obsługi na urządzeniu, które może wykonać ten krok.
Deseń: ^\S+/\S+:\d{1,5}$
Minimalna długość: pięć znaków
Maksymalna długość: 32 znaki
Przykłady: microsoft/script:1, , microsoft/swupdate:2microsoft/apt:1
Tak
Pliki string [1-10] Nazwy plików aktualizacji zdefiniowanych jako obiekty plików, które agent przekazuje do programu obsługi. Każda długość elementu musi zawierać od 1 do 255 znaków. Tak
handlerProperties inlineStepHandlerProperties Obiekty JSON, które agent przekazuje do programu obsługi jako argumenty. Nie.

Żadne inne właściwości nie są dozwolone.

Na przykład:

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

Obiekt kroku odwołania

reference Obiekt kroku to krok instrukcji instalacji umożliwiający zainstalowanie innej aktualizacji.

Właściwość Type Opis Wymagania
type referenceStepType Typ kroku instrukcji, który instaluje inną aktualizację. Musi mieć wartość reference. Tak
opis stepDescription Opcjonalny opis kroku instrukcji. Maksymalna długość: 64 znaki. Nie.
updateId updateId Unikatowy identyfikator aktualizacji. Tak

Żadne inne właściwości nie są dozwolone.

Na przykład:

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

Obiekt Files

Każdy files obiekt jest plikiem ładunku aktualizacji, takim jak plik binarny, oprogramowanie układowe lub plik skryptu, który musi być unikatowy w ramach aktualizacji.

Właściwość Type Opis Wymagania
filename string Zaktualizuj nazwę pliku ładunku. Maksymalna długość: 255 znaków Tak
sizeInBytes number Rozmiar pliku w liczbie bajtów. Maksymalny rozmiar: 2147483648 bajtów Tak
Mieszania fileHashes Skróty plików zakodowane w formacie Base64 z nazwą algorytmu jako kluczem. Należy określić co najmniej algorytm SHA-256, a dodatkowe algorytmy można określić, jeśli są obsługiwane przez agenta. Zobacz Obiekt skrótów, aby uzyskać szczegółowe informacje na temat sposobu obliczania skrótu. Tak
relatedFiles relatedFile[0-4] Kolekcja plików powiązanych z co najmniej jednym podstawowym plikiem ładunku. Aby uzyskać więcej informacji, zobacz relatedFiles object (Obiekt relatedFiles). Nie.
downloadHandler downloadHandler Określa sposób przetwarzania dowolnych powiązanych plików. Tak, jeśli używasz polecenia relatedFiles. Aby uzyskać więcej informacji, zobacz downloadHandler object (Obiekt downloadHandler).

Żadne inne właściwości nie są dozwolone.

Na przykład:

{
  "files": [
    {  
      "fileName": "full-image-file-name",
      "sizeInBytes": 12345,
      "hashes": {...},
      "relatedFiles": [
        {
          "fileName": "delta-from-v1-file-name",
          "sizeInBytes": 1234,
          "hashes": {
            "SHA256": "delta-from-v1-file-hash"
          },
          "properties": {...}
        }  
      ],
      "downloadHandler": {
        "id": "microsoft/delta:1"
        }
    }
  ]
}

Obiekt skrótów

Obiekt hashes zawiera skróty plików zakodowane w formacie base64 z nazwami algorytmów jako kluczami. Należy określić co najmniej algorytm SHA-256, a inne algorytmy można określić, jeśli są obsługiwane przez agenta. Aby zapoznać się z przykładem prawidłowego obliczania skrótu, zobacz Get-AduFileHashes funkcję w skrypucie AduUpdate.psm1.

Właściwość Type Opis Wymagania
sha256 string Wartość skrótu pliku zakodowanego w formacie Base64 przy użyciu algorytmu SHA-256. Tak

Inne właściwości są dozwolone.

Na przykład:

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

relatedFiles, obiekt

Obiekt relatedFiles zawiera kolekcję plików, które są powiązane z co najmniej jednym podstawowym plikiem ładunku. Aby uzyskać więcej informacji, zobacz Używanie funkcji powiązanych plików do odwołwania się do wielu plików aktualizacji.

Właściwość Type Opis Wymagania
filename string Lista powiązanych plików skojarzonych z podstawowym plikiem ładunku. Tak
sizeInBytes number Rozmiar pliku w liczbie bajtów. Maksymalny rozmiar: 2147483648 bajtów. Tak
Mieszania fileHashes Skróty plików zakodowane w formacie Base64 z nazwą algorytmu jako kluczem. Aby uzyskać więcej informacji, zobacz Obiekt skrótów. Tak
Właściwości relatedFilesProperties [0-5] Maksymalnie pięć par klucz-wartość, gdzie klucz jest ograniczony do 64 znaków ASCII, a wartość jest obiektem JObject z maksymalnie 256 znakami ASCII. Nie.

Inne właściwości są dozwolone.

Na przykład:

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

downloadHandler, obiekt

Obiekt downloadHandler określa sposób przetwarzania dowolnych powiązanych plików.

Właściwość Type Opis Wymagania
id string Identyfikator dla elementu downloadHandler. Limit 64 znaków ASCII. Tak, jeśli używasz relatedFiles

Żadne inne właściwości nie są dozwolone.

Na przykład:

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