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 o alle informazioni sulle autorizzazioni API, vedere di seguito.
Lo schema JSON del manifesto di importazione è ospitato in SchemaStore.org.
Schema
Proprietà | Type | Descrizione | Richiesto |
---|---|---|---|
$schema | string |
Informazioni di riferimento sullo schema JSON. | No |
updateId | updateId |
Identificatore di aggiornamento univoco. | Sì |
description | string |
Descrizione dell'aggiornamento facoltativo. Lunghezza massima: 512 caratteri |
No |
compatibilità | compatibility |
L'elenco di set di proprietà del dispositivo con cui questo aggiornamento è compatibile. | Sì |
disposizioni | instructions |
Aggiornare le istruzioni di installazione. | Sì |
file | file [0-10] |
Elenco dei file di payload di aggiornamento. La somma di tutte le dimensioni del file potrebbe non superare i 2 GB. Può essere vuoto o null se tutti i passaggi dell'istruzione sono passaggi di riferimento. | No |
manifestVersion | string |
Importare la versione dello schema del manifesto. Deve essere 4.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 sta creando o direttamente responsabile dell'aggiornamento. Può essere un nome della società. Criterio: ^[a-zA-Z0-9.-]+$ Lunghezza massima: 64 caratteri |
Sì |
name | string |
Identificatore per 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 da due a quattro parti separati da punti. Ogni parte deve essere un numero compreso tra 0 e 2147483647 e gli zere 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 compatibilità
L'oggetto compatibilità descrive le proprietà di un dispositivo con cui questo aggiornamento è compatibile.
- Tipo:
object
- Proprietà minime:
1
- Proprietà massime:
5
Ogni proprietà è una coppia nome-valore di tipo string.
- Lunghezza minima nome proprietà:
1
- Lunghezza massima nome proprietà:
32
- Lunghezza minima valore proprietà:
1
- Lunghezza massima valore proprietà:
64
Lo stesso set esatto di proprietà di compatibilità non può essere usato con più provider di aggiornamento e combinazione di nomi.
Ad esempio:
{
"compatibility": [
{
"deviceManufacturer": "Contoso",
"deviceModel": "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 |
---|---|---|---|
Passi | array[1-10] |
Ogni elemento nella 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 passaggio inline è un passaggio dell'istruzione di installazione che esegue l'esecuzione del codice.
Proprietà | Type | Descrizione | Richiesto |
---|---|---|---|
type | string |
Tipo di passaggio istruzione che esegue l'esecuzione del codice. Deve essere inline .L'impostazione inline predefinita è se non viene specificato alcun valore. |
No |
description | string |
Descrizione del passaggio facoltativo dell'istruzione. Lunghezza massima: 64 caratteri |
No |
Gestore | 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ì |
file | 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ì |
Proprietà del gestore | inlineStepHandlerProperties |
Oggetto JSON che agent 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 passaggio di riferimento è un passaggio dell'istruzione di installazione che installa un altro aggiornamento.
Proprietà | Type | Descrizione | Richiesto |
---|---|---|---|
type | referenceStepType |
Tipo di passaggio istruzione che installa un altro aggiornamento. Deve essere reference . |
Sì |
description | stepDescription |
Descrizione del passaggio facoltativo dell'istruzione. Lunghezza massima: 64 caratteri |
No |
updateId | updateId |
Identificatore di aggiornamento univoco. | 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 di 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 |
Aggiornare il nome del file di payload. Lunghezza massima: 255 caratteri |
Sì |
sizeInBytes | number |
Dimensioni del file in numero di byte. Dimensioni massime: byte 2147483648 |
Sì |
Hash | 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ì |
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 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="
}
}
Passaggi successivi
Altre informazioni sui concetti relativi all'importazione.
Se si è pronti, provare la guida alle procedure di importazione, che illustra in dettaglio il processo di importazione.