Partager via


Schéma de manifeste d’importation Azure Device Update pour IoT Hub

Lorsque vous importez une mise à jour dans Azure Device Update pour Iot Hub, vous envoyez également un fichier manifeste d’importation JSON associé qui définit des informations importantes sur la mise à jour. Cet article décrit le schéma utilisé pour créer le fichier manifeste d’importation JSON.

Pour en savoir plus sur les concepts de manifeste d’importation et la structure du fichier, consultez Manifeste d’importation Azure Device Update pour IoT Hub. Pour savoir comment créer le fichier, consultez Préparer une mise à jour à importer dans Device Update pour IoT Hub.

schéma

Le schéma JSON du manifeste d’importation est hébergé à SchemaStore.org et se compose des propriétés suivantes. Aucune autre propriété n’est autorisée.

Propriété Type Description Obligatoire
$schema string Informations de référence sur le schéma JSON. Non
updateId updateId Identificateur de mise à jour unique. Oui
description string Description facultative de la mise à jour. La longueur maximale est de 512 caractères. Non
compatibilité compatibility Liste des jeux de propriétés d’appareil avec lesquels cette mise à jour est compatible. Oui
instructions instructions Instructions d’installation de la mise à jour. Oui
fichiers file [0-10] Liste des fichiers de charge utile de mise à jour. La somme de toutes les tailles de fichier ne peut pas dépasser 2 Go. Peut être vide ou nul si toutes les étapes d’instructions sont des étapes de référence. Non
manifestVersion string Version du schéma du manifeste d’importation. Doit être 5.0. Oui
createdDateTime string La date et l’heure de création du manifeste d’importation au format ISO 8601, par exemple "2020-10-02T22:18:04.9446744Z". Oui

Mettre à jour un objet

L’objet updateID est un identificateur unique à chaque mise à jour.

Propriété Type Description Obligatoire
provider string Entité qui crée ou qui est directement responsable de la mise à jour. Le fournisseur peut être un nom de société.
Modèle : ^[a-zA-Z0-9.-]+$
Longueur maximale : 64 caractères
Oui
name string Identificateur d’une classe de mise à jour. Le Nom peut être une classe d’appareils ou un nom de modèle.
Modèle : ^[a-zA-Z0-9.-]+$
Longueur maximale : 64 caractères
Oui
version string Numéros de version séparés par des points et composés de deux à quatre parties. Chaque partie doit être un nombre compris entre 0 et 2147483647 et les zéros non significatifs sont supprimés.
Modèle : ^\d+(?:\.\d+)+$
Exemples : "1.0", "2021.11.8"
Oui

Aucune autre propriété n’est autorisée.

Par exemple :

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

Objet Compatibilité

L’objet compatibility décrit les propriétés 1 à 5 d’un appareil avec lequel cette mise à jour est compatible. Chaque propriété est une paire nom/valeur de type string. Le nom doit contenir de 1 à 32 caractères et la valeur doit contenir de 1 à 64 caractères. Vous ne pouvez pas utiliser le même ensemble de propriétés de compatibilité avec plus d’une combinaison de fournisseur de mise à jour et de nom.

Par exemple :

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

Objet Instructions

L’objet instructions fournit les instructions d’installation de la mise à jour. L’objet Instructions contient une liste de steps à effectuer. Aucune autre propriété n’est autorisée.

Les étapes peuvent être du code à exécuter ou des pointeurs vers d’autres mises à jour. Un objet d’étape est défini par défaut sur inline si aucune valeur type n’est fournie.

Propriété Type Description Obligatoire
steps array[1-10] Chaque élément du tableau steps doit être un objet d’étape inline ou un objet d’étape de référence. Oui

Par exemple :

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

Objet d’étape inline

Un objet d’étape inline est une étape d’instruction d’installation qui exécute du code.

Propriété Type Description Obligatoire
type string Type d’étape d’instructions qui effectue l’exécution du code. Doit être inline. La valeur par défaut est inline si aucune valeur n’est fournie. Non
description string Description facultative de l’étape d’instructions. La longueur maximale est de 64 caractères. Non
handler string Identité du gestionnaire sur l’appareil, qui peut exécuter cette étape.
Modèle : ^\S+/\S+:\d{1,5}$
La longueur minimale est de cinq caractères
Longueur maximale : 32 caractères
Exemples : microsoft/script:1, microsoft/swupdate:1, microsoft/apt:1
Oui
fichiers string [1-10] Noms des fichiers de mise à jour définis en tant qu’objets fichier que l’agent passe au gestionnaire. La longueur de chaque élément doit être de 1 à 255 caractères. Oui
handlerProperties inlineStepHandlerProperties Objets JSON transmis par l’agent au gestionnaire en tant qu’arguments. Non

Aucune autre propriété n’est autorisée.

Par exemple :

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

Objet d’étape de référence

Un objet d’étape reference est une étape d’instruction d’installation qui installe une autre mise à jour.

Propriété Type Description Obligatoire
type referenceStepType Type d’étape d’instructions qui installe une autre mise à jour. Doit être reference. Oui
description stepDescription Description facultative de l’étape d’instructions. La longueur maximale est de 64 caractères. Non
updateId updateId Identificateur de mise à jour unique. Oui

Aucune autre propriété n’est autorisée.

Par exemple :

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

Objet Fichiers

Chaque objet files est un fichier de charge utile de mise à jour, tel qu’un fichier binaire, un microprogramme ou un script, qui doit être unique dans une mise à jour.

Propriété Type Description Obligatoire
filename string Nom du fichier de charge utile de mise à jour. Longueur maximale : 255 caractères Oui
sizeInBytes number Taille du fichier, en nombre d’octets. Taille maximale : 2147483648 octets Oui
hashes fileHashes Hachages de fichier encodés en base64 avec le nom d’algorithme comme clé. Au minimum, l’algorithme SHA-256 doit être spécifié, et des algorithmes supplémentaires peuvent être spécifié s’ils sont pris en charge par l’agent. Pour plus d’informations sur le calcul du hachage, consultez Objet Hachages. Oui
relatedFiles relatedFile[0-4] Collection de fichiers liés à un ou plusieurs fichiers de charge utile principale. Pour plus d’informations, consultez Objet relatedFiles. Non
downloadHandler downloadHandler Spécifie comment traiter les fichiers associés. Oui, si vous utilisez relatedFiles. Pour plus d’informations, consultez Objet downloadHandler.

Aucune autre propriété n’est autorisée.

Par exemple :

{
  "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"
        }
    }
  ]
}

Objet Hachages

L’objet hashes contient des hachages de fichiers encodés en base64 avec les noms d’algorithmes en tant que clés. L’algorithme SHA-256 doit être impérativement spécifié. D’autres algorithmes peuvent également être spécifiés si l’agent les prend en charge. Pour un exemple de la façon de calculer le hachage correctement, consultez la fonction Get-AduFileHashes dans le script AduUpdate.psm1.

Propriété Type Description Obligatoire
sha256 string Valeur de hachage de fichier encodée en base64 à l’aide de l’algorithme SHA-256. Oui

D’autres propriétés sont autorisées.

Par exemple :

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

Objet relatedFiles

L’objet relatedFiles contient une collection de fichiers liés à un ou plusieurs fichiers de charge utile principale. Pour plus d’informations, consultez Utiliser la fonctionnalité de fichiers associés pour référencer plusieurs fichiers de mise à jour.

Propriété Type Description Obligatoire
filename string Liste des fichiers associés associés à un fichier de charge utile principal. Oui
sizeInBytes number Taille du fichier, en nombre d’octets. La taille maximale est de 2147483648 octets. Oui
hashes fileHashes Hachages de fichier encodés en base64 avec le nom d’algorithme comme clé. Pour plus d’informations, consultez Objet Hachages. Oui
properties relatedFilesProperties [0-5] Limite de cinq paires clé-valeur, où la clé est limitée à 64 caractères ASCII et la valeur est un JObject avec jusqu’à 256 caractères ASCII. Non

D’autres propriétés sont autorisées.

Par exemple :

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

Objet downloadHandler

L’objet downloadHandler spécifie comment traiter les fichiers associés.

Propriété Type Description Obligatoire
id string Identificateur pour downloadHandler. Limite de 64 caractères ASCII. Oui, si vous utilisez relatedFiles

Aucune autre propriété n’est autorisée.

Par exemple :

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