Condividi tramite


Aggiornamento dei dispositivi di Azure per hub IoT schema del manifesto di importazione

Quando si importa un aggiornamento in Aggiornamento dispositivi di Azure per l'hub Iot, si invia anche un file manifesto di importazione JSON associato che definisce informazioni importanti sull'aggiornamento. Questo articolo descrive lo schema usato per creare il file manifesto di importazione JSON.

Per altre informazioni sui concetti del manifesto e sulla struttura dei file, vedere Aggiornamento dei dispositivi di Azure per hub IoT manifesto di importazione. Per informazioni su come creare il file, vedere Preparare un aggiornamento da importare in Aggiornamento dispositivi per hub IoT.

Schema

Lo schema JSON del manifesto di importazione è ospitato in SchemaStore.org ed è costituito dalle proprietà seguenti. Non sono consentite altre proprietà.

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 di 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 del file non può 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 5.0.
createdDateTime string Importare la data e l'ora di creazione del manifesto in formato ISO 8601, ad esempio "2020-10-02T22:18:04.9446744Z".

Aggiorna oggetto

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

Proprietà Type Descrizione Richiesto
provider string Entità che crea o è direttamente responsabile dell'aggiornamento. Il provider può essere un nome della società.
Criterio: ^[a-zA-Z0-9.-]+$
Lunghezza massima: 64 caratteri
name string Identificatore di una classe di aggiornamento. Il nome 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 zere iniziali vengono eliminati.
Criterio: ^\d+(?:\.\d+)+$
Esempi: "1.0", "2021.11.8"

Non sono consentite altre proprietà.

Ad esempio:

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

Oggetto Compatibility

L'oggetto compatibility descrive le proprietà 1-5 di un dispositivo compatibile con questo aggiornamento. Ogni proprietà è una string coppia nome-valore di tipo. Il nome deve avere una lunghezza di 1-32 caratteri e il valore deve avere una lunghezza di 1-64 caratteri. Non è possibile usare lo stesso set esatto di proprietà di compatibilità con più provider di aggiornamento e combinazione di nomi.

Ad esempio:

{
  "compatibility": [
    {
      "manufacturer": "Contoso",
      "model": "Toaster"
    }
  ]
}

Oggetto Instructions

L'oggetto instructions fornisce le istruzioni di installazione dell'aggiornamento. L'oggetto instructions contiene un elenco di steps da eseguire. Non sono consentite altre proprietà.

I passaggi possono essere codice per eseguire o puntatori ad altri aggiornamenti. L'impostazione predefinita di un oggetto step è inline se non viene specificato alcun type valore.

Proprietà Type Descrizione Richiesto
Passi array[1-10] Ogni elemento nella steps matrice deve essere un oggetto passaggio inline o un oggetto passaggio di riferimento.

Ad esempio:

{
  "instructions": {
    "steps": [
      {
        "type": "inline",
        ...
      },
      {
        "type": "reference",
        ...
      }
    ]
  }
}

Oggetto passaggio inline

Un inline oggetto step è un passaggio dell'istruzione di installazione che esegue l'esecuzione del 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: cinque caratteri
Lunghezza massima: 32 caratteri
Esempi: microsoft/script:1, microsoft/swupdate:2, microsoft/apt:1
files string [1-10] Nomi dei file di aggiornamento definiti come oggetti file che l'agente passa al gestore. Ogni lunghezza dell'elemento deve essere di 1-255 caratteri.
handlerProperties inlineStepHandlerProperties Oggetti JSON passati dall'agente al gestore come argomenti. No

Non sono consentite altre proprietà.

Ad esempio:

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

Oggetto passaggio di riferimento

Un reference oggetto passaggio è un passaggio dell'istruzione di installazione per installare 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 altre proprietà.

Ad esempio:

{
  "steps": [
    {
      "type": "reference",
      "updateId": {
        "provider": "Contoso",
        "name": "Toaster.HeatingElement",
        "version": "1.0"
      }
    }
  ]
}

Oggetto Files

Ogni files oggetto è un file di payload di aggiornamento, ad esempio un file binario, firmware o script, che 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, se supportato dall'agente, è possibile specificare algoritmi aggiuntivi. Per informazioni dettagliate su come calcolare l'hash, vedere Hash.
relatedFiles relatedFile[0-4] Raccolta di file correlati a uno o più file di payload primari. Per altre informazioni, vedere oggetto relatedFiles. No
downloadHandler downloadHandler Specifica come elaborare i file correlati. Sì, se si usa relatedFiles. Per altre informazioni, vedere l'oggetto downloadHandler.

Non sono consentite altre proprietà.

Ad esempio:

{
  "files": [
    {  
      "fileName": "full-image-file-name",
      "sizeInBytes": 12345,
      "hashes": {...},
      "relatedFiles": [
        {
          "fileName": "delta-from-v1-file-name",
          "sizeInBytes": 1234,
          "hashes": {
            "SHA256": "delta-from-v1-file-hash"
          },
          "properties": {...}
        }  
      ],
      "downloadHandler": {
        "id": "microsoft/delta:1"
        }
    }
  ]
}

Oggetto Hash

L'oggetto hashes contiene hash di file con codifica Base64 con i nomi degli algoritmi come chiavi. È 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 Get-AduFileHashes funzione nello script AduUpdate.psm1.

Proprietà Type Descrizione Richiesto
sha256 string Valore hash del file con codifica Base64 usando l'algoritmo SHA-256.

Sono consentite altre proprietà.

Ad esempio:

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

Oggetto relatedFiles

L'oggetto relatedFiles contiene una raccolta di file correlati a uno o più file di payload primari. Per altre informazioni, vedere Usare la funzionalità file correlati per fare riferimento a più file di aggiornamento.

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: byte 2147483648.
hashes fileHashes Hash di file con codifica Base64 con nome dell'algoritmo come chiave. Per altre informazioni, vedere Oggetto Hash.
properties relatedFilesProperties [0-5] Fino a cinque coppie chiave-valore, in cui la chiave è limitata a 64 caratteri ASCII e il valore è un JObject con un massimo di 256 caratteri ASCII. No

Sono consentite altre proprietà.

Ad esempio:

"relatedFiles": [
  {
    "filename": "in1_in2_deltaupdate.dat",
    "sizeInBytes": 102910752,
    "hashes": {
      "sha256": "2MIldV8LkdKenjJasgTHuYi+apgtNQ9FeL2xsV3ikHY="
    },
    "properties": {
      "microsoft.sourceFileHashAlgorithm": "sha256",
      "microsoft.sourceFileHash": "YmFYwnEUddq2nZsBAn5v7gCRKdHx+TUntMz5tLwU+24="
    }
  }
],

Oggetto downloadHandler

L'oggetto downloadHandler specifica come elaborare i file correlati.

Proprietà Type Descrizione Richiesto
id string Identificatore per downloadHandler. Limite di 64 caratteri ASCII. Sì, se si usa relatedFiles

Non sono consentite altre proprietà.

Ad esempio:

"downloadHandler": {
  "id": "microsoft/delta:1"
}