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.
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.
disposizioni instructions Aggiornare le istruzioni di installazione.
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.
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 sta creando o direttamente responsabile dell'aggiornamento. Può essere un nome della società.

Criterio: ^[a-zA-Z0-9.-]+$
Lunghezza massima: 64 caratteri
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
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"

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.

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
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.
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.
description stepDescription Descrizione del passaggio facoltativo dell'istruzione.

Lunghezza massima: 64 caratteri
No
updateId updateId Identificatore di aggiornamento univoco.

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

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

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.

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.