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.
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.
instructions instructions Istruzioni di installazione dell'aggiornamento.
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.
createdDateTime string Il manifesto di importazione di data e ora è stato creato in formato ISO 8601.

Esempio: "2020-10-02T22:18:04.9446744Z"

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
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
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"

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.

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
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.
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.
description stepDescription Descrizione facoltativa del passaggio delle istruzioni.

Lunghezza massima: 64 caratteri
No
updateId updateId Identificatore univoco dell'aggiornamento.

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
sizeInBytes number Dimensioni del file in numero di byte.

Dimensioni massime: 2147483648 byte
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.
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.

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.
sizeInBytes number Dimensioni del file in numero di byte.

Dimensioni massime: 2147483648 byte
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.
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.

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.