Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Podczas importowania aktualizacji do usługi Azure Device Update dla usługi IoT Hub należy również przesłać 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.
| Majątek | Typ | Opis | Wymagane |
|---|---|---|---|
| $schema | string |
Referencja schematu JSON. | Nie. |
| updateId (identyfikator aktualizacji) | updateId |
Unikatowy identyfikator aktualizacji. | Tak |
| opis | string |
Opcjonalny opis aktualizacji. Maksymalna długość 512 znaków. | Nie. |
| Zgodności | 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 pakietu 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.
| Majątek | Typ | Opis | Wymagane |
|---|---|---|---|
| dostawca | string |
Jednostka, która tworzy aktualizację lub odpowiada bezpośrednio za aktualizację.
Dostawca może być nazwą firmy. Wzorzec: ^[a-zA-Z0-9.-]+$Maksymalna długość: 64 znaki |
Tak |
| nazwa | string |
Identyfikator klasy aktualizacji. Nazwa może być nazwą klasy urządzenia lub modelu. Wzorzec: ^[a-zA-Z0-9.-]+$Maksymalna długość: 64 znaki |
Tak |
| wersja | string |
Od dwóch do czterech części wersji liczbowych rozdzielonych kropkami. Każda część musi być liczbą z zakresu od 0 do 2147483647, a zera wiodące są porzucane. Wzorzec: ^\d+(?:\.\d+)+$Przykłady: "1.0", "2021.11.8" |
Tak |
Żadne inne właściwości nie są dozwolone.
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ą typu string nazwa-wartość. 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.
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.
| Majątek | Typ | Opis | Wymagane |
|---|---|---|---|
| Kroki | array[1-10] |
Każdy element w tablicy steps musi być albo wbudowanym obiektem kroku, albo obiektem kroku referencyjnego. |
Tak |
Przykład:
{
"instructions": {
"steps": [
{
"type": "inline",
...
},
{
"type": "reference",
...
}
]
}
}
Obiekt kroku wbudowanego
inline Obiekt kroku to etap instrukcji instalacji, który wykonuje kod.
| Majątek | Typ | Opis | Wymagane |
|---|---|---|---|
| typ | 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ść obsługującego urządzenia, które może wykonać ten krok. Wzorzec: ^\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 |
| właściwościObsługi | inlineStepHandlerProperties |
Obiekty JSON, które agent przekazuje do programu obsługi jako argumenty. | Nie. |
Żadne inne właściwości nie są dozwolone.
Przykład:
{
"steps": [
{
"description": "pre-install script",
"handler": "microsoft/script:1",
"handlerProperties": {
"arguments": "--pre-install"
},
"files": [
"configure.sh"
]
}
]
}
Obiekt referencyjnego kroku
reference Obiekt kroku to krok instrukcji instalacji umożliwiający zainstalowanie innej aktualizacji.
| Majątek | Typ | Opis | Wymagane |
|---|---|---|---|
| typ | 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 (identyfikator aktualizacji) | updateId |
Unikatowy identyfikator aktualizacji. | Tak |
Żadne inne właściwości nie są dozwolone.
Przykład:
{
"steps": [
{
"type": "reference",
"updateId": {
"provider": "Contoso",
"name": "Toaster.HeatingElement",
"version": "1.0"
}
}
]
}
Obiekt Pliki
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.
| Majątek | Typ | Opis | Wymagane |
|---|---|---|---|
| nazwy pliku | string |
Zaktualizuj nazwę pliku ładunku. Maksymalna długość: 255 znaków | Tak |
| rozmiarWbajtach | number |
Rozmiar pliku w liczbie bajtów. Maksymalny rozmiar: 2147483648 bajtów | Tak |
| hasze | 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 Hashes, aby uzyskać szczegółowe informacje na temat sposobu obliczania skrótu. | Tak |
| relatedFiles (Powiązane pliki) | relatedFile[0-4] |
Kolekcja plików powiązanych z co najmniej jednym podstawowym plikiem ładunku. Aby uzyskać więcej informacji, zobacz obiekt relatedFiles. | Nie. |
| pobierzHandler | downloadHandler |
Określa sposób przetwarzania dowolnych powiązanych plików. | Tak, jeśli używasz relatedFiles. Aby uzyskać więcej informacji, zobacz downloadHandler object (Obiekt downloadHandler). |
Żadne inne właściwości nie są dozwolone.
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 zobaczyć przykład prawidłowego obliczania skrótu, zobacz funkcję Get-AduFileHashes w skrypcie AduUpdate.psm1.
| Majątek | Typ | Opis | Wymagane |
|---|---|---|---|
| sha256 powiedział: powiedział: | string |
Wartość skrótu pliku zakodowanego w formacie Base64 przy użyciu algorytmu SHA-256. | Tak |
Inne właściwości są dozwolone.
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.
| Majątek | Typ | Opis | Wymagane |
|---|---|---|---|
| nazwy pliku | string |
Lista powiązanych plików skojarzonych z podstawowym plikiem ładunku. | Tak |
| rozmiarWbajtach | number |
Rozmiar pliku w liczbie bajtów. Maksymalny rozmiar: 2147483648 bajtów. | Tak |
| hasze | 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.
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.
| Majątek | Typ | Opis | Wymagane |
|---|---|---|---|
| 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.
Przykład:
"downloadHandler": {
"id": "microsoft/delta:1"
}