Condividi tramite


Importazione di aggiornamenti in Aggiornamento dispositivi per l'hub IoT: schema e altre informazioni

Se vuoi importare un aggiornamento in Aggiornamento per dispositivi dell'hub IoT, assicurati 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.

Diagramma

Proprietà TIPO Descrizione Obbligatorio
$schema string Informazioni di riferimento sullo schema JSON. NO
updateId updateId Identificatore di aggiornamento univoco.
descrizione 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 Versione dello schema del manifesto di importazione. 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 di updateId

L'oggetto updateID è un identificatore univoco per ogni aggiornamento.

Proprietà TIPO Descrizione Obbligatorio
fornitore 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
nome 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
Versione 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 zeri iniziali verranno eliminati.

Criterio: ^\d+(?:\.\d+)+$
Esempi: "1.0", "2021.11.8"

Non sono consentite proprietà aggiuntive.

Per esempio:

{
  "updateId": {
    "provider": "Contoso",
    "name": "Toaster",
    "version": "1.0"
  }
}

oggetto di 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 del nome della proprietà: 1
  • Lunghezza massima nome proprietà: 32
  • Lunghezza minima del valore della proprietà: 1
  • Lunghezza massima del valore della proprietà: 64

Lo stesso set esatto di proprietà di compatibilità non può essere usato con più provider di aggiornamento e combinazione di nomi.

Per esempio:

{
  "compatibility": [
    {
      "deviceManufacturer": "Contoso",
      "deviceModel": "Toaster"
    }
  ]
}

oggetto istruzioni

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à TIPO Descrizione Obbligatorio
Passi array[1-10] Ogni elemento nella matrice deve essere un oggetto inlineStep o un oggetto referenceStep.

Non sono consentite proprietà aggiuntive.

Per 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à TIPO Descrizione Obbligatorio
tipo string Tipo di passaggio delle istruzioni che esegue il codice. Deve essere inline.

L'impostazione predefinita è inline se non viene specificato alcun valore.
NO
descrizione string Descrizione facoltativa del passaggio delle istruzioni.

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] I nomi dei file di aggiornamento sono 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à dell'handler inlineStepHandlerProperties Oggetto JSON che l'agente passerà al gestore come argomenti. NO

Non sono consentite proprietà aggiuntive.

Per esempio:

{
  "steps": [
    {
      "description": "pre-install script",
      "handler": "microsoft/script:1",
      "handlerProperties": {
        "arguments": "--pre-install"
      },
      "files": [
        "configure.sh"
      ]
    }
  ]
}

oggetto referenceStep

Un oggetto di passaggio di riferimento è un passaggio di istruzioni di installazione che consente di installare un altro aggiornamento.

Proprietà TIPO Descrizione Obbligatorio
tipo referenceStepType Tipo di passaggio delle istruzioni che installa un altro aggiornamento. Deve essere reference.
descrizione stepDescription Descrizione facoltativa del passaggio delle istruzioni.

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

Non sono consentite proprietà aggiuntive.

Per 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à TIPO Descrizione Obbligatorio
Filename string Aggiornare il nome del file di payload.

Lunghezza massima: 255 caratteri
sizeInBytes number Dimensioni del file in numero di byte.

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

Per 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à TIPO Descrizione Obbligatorio
sha256 string Valore hash del file con codifica Base64 usando l'algoritmo SHA-256.

Sono consentite proprietà aggiuntive.

Per esempio:

{
  "hashes": {
    "sha256": "/CD7Sn6fiknWa3NgcFjGlJ+ccA81s1QAXX4oo5GHiFA="
  }
}

Passaggi successivi

Altre informazioni sui concetti relativi all'importazione.

Se si è pronti, provare la guida Importa How-To, che illustra in dettaglio il processo di importazione.