Aggiornamento dei dispositivi di Azure per hub IoT schema del manifesto di importazione
Quando si importa un aggiornamento in Aggiornamento dispositivi di Azure per l'hub Iot, si invia anche un file manifesto di importazione JSON associato che definisce informazioni importanti sull'aggiornamento. Questo articolo descrive lo schema usato per creare il file manifesto di importazione JSON.
Per altre informazioni sui concetti del manifesto e sulla struttura dei file, vedere Aggiornamento dei dispositivi di Azure per hub IoT manifesto di importazione. Per informazioni su come creare il file, vedere Preparare un aggiornamento da importare in Aggiornamento dispositivi per hub IoT.
Schema
Lo schema JSON del manifesto di importazione è ospitato in SchemaStore.org ed è costituito dalle proprietà seguenti. Non sono consentite altre proprietà.
Proprietà | Type | Descrizione | Richiesto |
---|---|---|---|
$schema | string |
Riferimento allo schema JSON. | No |
updateId | updateId |
Identificatore univoco dell'aggiornamento. | Sì |
description | string |
Descrizione facoltativa dell'aggiornamento. Lunghezza massima di 512 caratteri. | No |
compatibility | compatibility |
L'elenco di set di proprietà del dispositivo con cui questo aggiornamento è compatibile. | Sì |
instructions | instructions |
Istruzioni di installazione dell'aggiornamento. | Sì |
files | file [0-10] |
Elenco dei file di payload dell'aggiornamento. La somma di tutte le dimensioni del file non può superare i 2 GB. Può essere vuoto o null se tutti i passaggi dell'istruzione sono passaggi di riferimento. | No |
manifestVersion | string |
Versione dello schema del manifesto di importazione. Deve essere 5.0. | Sì |
createdDateTime | string |
Importare la data e l'ora di creazione del manifesto in formato ISO 8601, ad esempio "2020-10-02T22:18:04.9446744Z" . |
Sì |
Aggiorna oggetto
L'oggetto updateID
è un identificatore univoco per ogni aggiornamento.
Proprietà | Type | Descrizione | Richiesto |
---|---|---|---|
provider | string |
Entità che crea o è direttamente responsabile dell'aggiornamento. Il provider può essere un nome della società. Criterio: ^[a-zA-Z0-9.-]+$ Lunghezza massima: 64 caratteri |
Sì |
name | string |
Identificatore di una classe di aggiornamento. Il nome può essere una classe di dispositivo o un nome di modello. Criterio: ^[a-zA-Z0-9.-]+$ Lunghezza massima: 64 caratteri |
Sì |
version | string |
Numeri di versione numerici separati da punti composti da due a quattro parti. Ogni parte deve essere un numero compreso tra 0 e 2147483647 e gli zere iniziali vengono eliminati. Criterio: ^\d+(?:\.\d+)+$ Esempi: "1.0" , "2021.11.8" |
Sì |
Non sono consentite altre proprietà.
Ad esempio:
{
"updateId": {
"provider": "Contoso",
"name": "Toaster",
"version": "1.0"
}
}
Oggetto Compatibility
L'oggetto compatibility
descrive le proprietà 1-5 di un dispositivo compatibile con questo aggiornamento. Ogni proprietà è una string
coppia nome-valore di tipo. Il nome deve avere una lunghezza di 1-32 caratteri e il valore deve avere una lunghezza di 1-64 caratteri. Non è possibile usare lo stesso set esatto di proprietà di compatibilità con più provider di aggiornamento e combinazione di nomi.
Ad esempio:
{
"compatibility": [
{
"manufacturer": "Contoso",
"model": "Toaster"
}
]
}
Oggetto Instructions
L'oggetto instructions
fornisce le istruzioni di installazione dell'aggiornamento. L'oggetto instructions contiene un elenco di steps
da eseguire. Non sono consentite altre proprietà.
I passaggi possono essere codice per eseguire o puntatori ad altri aggiornamenti. L'impostazione predefinita di un oggetto step è inline
se non viene specificato alcun type
valore.
Proprietà | Type | Descrizione | Richiesto |
---|---|---|---|
Passi | array[1-10] |
Ogni elemento nella steps matrice deve essere un oggetto passaggio inline o un oggetto passaggio di riferimento. |
Sì |
Ad esempio:
{
"instructions": {
"steps": [
{
"type": "inline",
...
},
{
"type": "reference",
...
}
]
}
}
Oggetto passaggio inline
Un inline
oggetto step è un passaggio dell'istruzione di installazione che esegue l'esecuzione del codice.
Proprietà | Type | Descrizione | Richiesto |
---|---|---|---|
type | string |
Tipo di passaggio delle istruzioni che esegue il codice. Deve essere inline . L'impostazione predefinita è inline se non viene specificato alcun valore. |
No |
description | string |
Descrizione facoltativa del passaggio delle istruzioni. Lunghezza massima: 64 caratteri. | No |
handler | string |
Identità del gestore nel dispositivo che può eseguire questo passaggio. Criterio: ^\S+/\S+:\d{1,5}$ Lunghezza minima: cinque caratteri Lunghezza massima: 32 caratteri Esempi: microsoft/script:1 , microsoft/swupdate:2 , microsoft/apt:1 |
Sì |
files | string [1-10] |
Nomi dei file di aggiornamento definiti come oggetti file che l'agente passa al gestore. Ogni lunghezza dell'elemento deve essere di 1-255 caratteri. | Sì |
handlerProperties | inlineStepHandlerProperties |
Oggetti JSON passati dall'agente al gestore come argomenti. | No |
Non sono consentite altre proprietà.
Ad esempio:
{
"steps": [
{
"description": "pre-install script",
"handler": "microsoft/script:1",
"handlerProperties": {
"arguments": "--pre-install"
},
"files": [
"configure.sh"
]
}
]
}
Oggetto passaggio di riferimento
Un reference
oggetto passaggio è un passaggio dell'istruzione di installazione per installare un altro aggiornamento.
Proprietà | Type | Descrizione | Richiesto |
---|---|---|---|
type | referenceStepType |
Tipo di passaggio delle istruzioni che installa un altro aggiornamento. Deve essere reference . |
Sì |
description | stepDescription |
Descrizione facoltativa del passaggio delle istruzioni. Lunghezza massima: 64 caratteri. | No |
updateId | updateId |
Identificatore univoco dell'aggiornamento. | Sì |
Non sono consentite altre proprietà.
Ad esempio:
{
"steps": [
{
"type": "reference",
"updateId": {
"provider": "Contoso",
"name": "Toaster.HeatingElement",
"version": "1.0"
}
}
]
}
Oggetto Files
Ogni files
oggetto è un file di payload di aggiornamento, ad esempio un file binario, firmware o script, che deve essere univoco all'interno di un aggiornamento.
Proprietà | Type | Descrizione | Richiesto |
---|---|---|---|
filename | string |
Nome del file di payload dell'aggiornamento. Lunghezza massima: 255 caratteri | Sì |
sizeInBytes | number |
Dimensioni del file in numero di byte. Dimensioni massime: 2147483648 byte | Sì |
hashes | fileHashes |
Hash di file con codifica Base64 con nome dell'algoritmo come chiave. È necessario specificare almeno l'algoritmo SHA-256 e, se supportato dall'agente, è possibile specificare algoritmi aggiuntivi. Per informazioni dettagliate su come calcolare l'hash, vedere Hash. | Sì |
relatedFiles | relatedFile[0-4] |
Raccolta di file correlati a uno o più file di payload primari. Per altre informazioni, vedere oggetto relatedFiles. | No |
downloadHandler | downloadHandler |
Specifica come elaborare i file correlati. | Sì, se si usa relatedFiles . Per altre informazioni, vedere l'oggetto downloadHandler. |
Non sono consentite altre proprietà.
Ad esempio:
{
"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"
}
}
]
}
Oggetto Hash
L'oggetto hashes
contiene hash di file con codifica Base64 con i nomi degli algoritmi come chiavi. È necessario specificare almeno l'algoritmo SHA-256 e gli altri algoritmi possono essere specificati se supportati dall'agente. Per un esempio di come calcolare correttamente l'hash, vedere la Get-AduFileHashes
funzione nello script AduUpdate.psm1.
Proprietà | Type | Descrizione | Richiesto |
---|---|---|---|
sha256 | string |
Valore hash del file con codifica Base64 usando l'algoritmo SHA-256. | Sì |
Sono consentite altre proprietà.
Ad esempio:
{
"hashes": {
"sha256": "/CD7Sn6fiknWa3NgcFjGlJ+ccA81s1QAXX4oo5GHiFA="
}
}
Oggetto relatedFiles
L'oggetto relatedFiles
contiene una raccolta di file correlati a uno o più file di payload primari. Per altre informazioni, vedere Usare la funzionalità file correlati per fare riferimento a più file di aggiornamento.
Proprietà | Type | Descrizione | Richiesto |
---|---|---|---|
filename | string |
Elenco di file correlati associati a un file di payload primario. | Sì |
sizeInBytes | number |
Dimensioni del file in numero di byte. Dimensioni massime: byte 2147483648. | Sì |
hashes | fileHashes |
Hash di file con codifica Base64 con nome dell'algoritmo come chiave. Per altre informazioni, vedere Oggetto Hash. | Sì |
properties | relatedFilesProperties [0-5] |
Fino a cinque coppie chiave-valore, in cui la chiave è limitata a 64 caratteri ASCII e il valore è un JObject con un massimo di 256 caratteri ASCII. | No |
Sono consentite altre proprietà.
Ad esempio:
"relatedFiles": [
{
"filename": "in1_in2_deltaupdate.dat",
"sizeInBytes": 102910752,
"hashes": {
"sha256": "2MIldV8LkdKenjJasgTHuYi+apgtNQ9FeL2xsV3ikHY="
},
"properties": {
"microsoft.sourceFileHashAlgorithm": "sha256",
"microsoft.sourceFileHash": "YmFYwnEUddq2nZsBAn5v7gCRKdHx+TUntMz5tLwU+24="
}
}
],
Oggetto downloadHandler
L'oggetto downloadHandler
specifica come elaborare i file correlati.
Proprietà | Type | Descrizione | Richiesto |
---|---|---|---|
id | string |
Identificatore per downloadHandler . Limite di 64 caratteri ASCII. |
Sì, se si usa relatedFiles |
Non sono consentite altre proprietà.
Ad esempio:
"downloadHandler": {
"id": "microsoft/delta:1"
}