Importazione di aggiornamenti in Aggiornamento dispositivi per hub IoT: schema e altre informazioni
Se si vuole importare un aggiornamento in Aggiornamento dispositivi per hub IoT, assicurarsi di aver esaminato prima i concetti e la guida pratica. Se si è interessati ai dettagli dello schema del manifesto di importazione stesso, vedere di seguito.
Lo schema JSON del manifesto di importazione è ospitato in SchemaStore.org.
Schema
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: 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 dei file non deve superare i 2 GB. Può essere vuoto o null se tutti i passaggi delle istruzioni sono passaggi di riferimento. | No |
manifestVersion | string |
Versione dello schema del manifesto di importazione. Deve essere 5.0. | Sì |
createdDateTime | string |
Il manifesto di importazione di data e ora è stato creato in formato ISO 8601. Esempio: "2020-10-02T22:18:04.9446744Z" |
Sì |
Non sono consentite proprietà aggiuntive.
Oggetto updateId
L'oggetto updateID è un identificatore univoco per ogni aggiornamento.
Proprietà | Type | Descrizione | Richiesto |
---|---|---|---|
provider | string |
Entità che crea o è direttamente responsabile dell'aggiornamento. Può essere il nome di una società. Criterio: ^[a-zA-Z0-9.-]+$ Lunghezza massima: 64 caratteri |
Sì |
name | string |
Identificatore di una classe di aggiornamento. 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 zero iniziali verranno eliminati. Criterio: ^\d+(?:\.\d+)+$ Esempi: "1.0" , "2021.11.8" |
Sì |
Non sono consentite proprietà aggiuntive.
Ad esempio:
{
"updateId": {
"provider": "Contoso",
"name": "Toaster",
"version": "1.0"
}
}
Oggetto compatibility
L'oggetto compatibility descrive le proprietà di un dispositivo con cui questo aggiornamento è compatibile.
- Tipo:
object
- Numero minimo di proprietà:
1
- Numero massimo di proprietà:
5
Ogni proprietà è una coppia nome-valore di tipo stringa.
- Lunghezza minima del nome della proprietà:
1
- Lunghezza massima del nome della proprietà:
32
- Lunghezza minima del valore della proprietà:
1
- Lunghezza massima del valore della proprietà:
64
Non è possibile usare lo stesso set di proprietà di compatibilità con più di una combinazione di nome e provider di aggiornamenti.
Ad esempio:
{
"compatibility": [
{
"manufacturer": "Contoso",
"model": "Toaster"
}
]
}
Oggetto instructions
L'oggetto instructions fornisce le istruzioni di installazione degli aggiornamenti. L'oggetto instructions contiene un elenco di passaggi da eseguire. I passaggi possono essere codice da eseguire o un puntatore a un altro aggiornamento.
Proprietà | Type | Descrizione | Richiesto |
---|---|---|---|
steps | array[1-10] |
Ogni elemento della matrice deve essere un oggetto inlineStep o un oggetto referenceStep. | Sì |
Non sono consentite proprietà aggiuntive.
Ad esempio:
{
"instructions": {
"steps": [
{
"type": "inline",
...
},
{
"type": "reference",
...
}
]
}
}
Oggetto inlineStep
Un oggetto inlineStep è un passaggio delle istruzioni di installazione che esegue il 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: 5 caratteri Lunghezza massima: 32 caratteri Esempi: microsoft/script:1 , microsoft/swupdate:1 , microsoft/apt:1 |
Sì |
files | string [1-10] |
Nomi dei file di aggiornamento definiti come oggetti file che l'agente passerà al gestore. Ogni elemento della matrice deve avere una lunghezza compresa tra 1 e 255 caratteri. | Sì |
handlerProperties | inlineStepHandlerProperties |
Oggetto JSON che l'agente passerà al gestore come argomenti. | No |
Non sono consentite proprietà aggiuntive.
Ad esempio:
{
"steps": [
{
"description": "pre-install script",
"handler": "microsoft/script:1",
"handlerProperties": {
"arguments": "--pre-install"
},
"files": [
"configure.sh"
]
}
]
}
Oggetto referenceStep
Un oggetto referenceStep è un passaggio delle istruzioni di installazione che installa 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 proprietà aggiuntive.
Ad esempio:
{
"steps": [
{
"type": "reference",
"updateId": {
"provider": "Contoso",
"name": "Toaster.HeatingElement",
"version": "1.0"
}
}
]
}
Oggetto file
Un oggetto file è un file di payload dell'aggiornamento, ad esempio binario, firmware, script e così via. Ogni oggetto file 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 l'algoritmo aggiuntivo può essere specificato se supportato dall'agente. Vedere di seguito per informazioni dettagliate su come calcolare l'hash. | Sì |
relatedFiles | relatedFile[0-4] |
Raccolta di file correlati a uno o più file di payload primari. | No |
downloadHandler | downloadHandler |
Specifica come elaborare i file correlati. | Sì solo se si usa relatedFiles |
Non sono consentite proprietà aggiuntive.
Ad esempio:
{
"files": [
{
"filename": "configure.sh",
"sizeInBytes": 7558,
"hashes": {...}
}
]
}
Oggetto fileHashes
Hash di file con codifica Base64 con il nome dell'algoritmo come chiave. È 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 funzione Get-AduFileHashes 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 proprietà aggiuntive.
Ad esempio:
{
"hashes": {
"sha256": "/CD7Sn6fiknWa3NgcFjGlJ+ccA81s1QAXX4oo5GHiFA="
}
}
Oggetto relatedFiles
Raccolta di file correlati a uno o più file di payload primari.
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: 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 l'algoritmo aggiuntivo può essere specificato se supportato dall'agente. Vedere di seguito per informazioni dettagliate su come calcolare l'hash. | Sì |
properties | relatedFilesProperties [0-5] |
Limite di 5 coppie chiave-valore, in cui la chiave è limitata a 64 caratteri ASCII e il valore è JObject (con un massimo di 256 caratteri ASCII). | No |
Sono consentite proprietà aggiuntive.
Ad esempio:
"relatedFiles": [
{
"filename": "in1_in2_deltaupdate.dat",
"sizeInBytes": 102910752,
"hashes": {
"sha256": "2MIldV8LkdKenjJasgTHuYi+apgtNQ9FeL2xsV3ikHY="
},
"properties": {
"microsoft.sourceFileHashAlgorithm": "sha256",
"microsoft.sourceFileHash": "YmFYwnEUddq2nZsBAn5v7gCRKdHx+TUntMz5tLwU+24="
}
}
],
Per altre informazioni, vedere Usare la funzionalità file correlati per fare riferimento a più file di aggiornamento.
Oggetto downloadHandler
Specifica come elaborare i file correlati.
Proprietà | Type | Descrizione | Richiesto |
---|---|---|---|
id | string |
Identificatore di downloadHandler. Limite di 64 caratteri ASCII. | Sì |
Non sono consentite proprietà aggiuntive.
Ad esempio:
"downloadHandler": {
"id": "microsoft/delta:1"
}
Passaggi successivi
Altre informazioni sui concetti di importazione.
Se si è pronti, provare la guida pratica di importazione, che illustra in dettaglio il processo di importazione.