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:2 microsoft/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"
}