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 soumettez é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 des fichiers, 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é chez SchemaStore.org et se compose des propriétés suivantes. Aucune autre propriété n’est autorisée.

Propriété Catégorie Descriptif Obligatoire
$schema string Référence de schéma JSON. Non
identifiant de mise à jour updateId Identificateur de mise à jour unique. Oui
description string Description facultative de la mise à jour. Longueur maximale de 512 caractères. Non
compatibilité compatibility La liste des ensembles de propriétés d’appareil avec laquelle cette mise à jour est compatible. Oui
instructions instructions Mettre à jour les instructions d’installation. 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 null si toutes les étapes d’instruction sont des étapes de référence. Non
manifestVersion string Importer la version du schéma de manifeste. Doit être 5.0. Oui
crééDateHeure string Importez la date et l’heure de création du manifeste au format ISO 8601, par exemple "2020-10-02T22:18:04.9446744Z". Oui

Mettre à jour un objet

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

Propriété Catégorie Descriptif Obligatoire
fournisseur string Entité qui crée ou est directement responsable de la mise à jour. Le fournisseur peut être le nom d’une entreprise.
Modèle : ^[a-zA-Z0-9.-]+$
Longueur maximale : 64 caractères
Oui
nom string Identificateur d’une classe de mise à jour. Le nom peut être une classe de périphérique ou un nom de modèle.
Modèle : ^[a-zA-Z0-9.-]+$
Longueur maximale : 64 caractères
Oui
Version string Numéros de version numériques composés de deux à quatre parties, séparées par des points. 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 de compatibilité

L’objet compatibility décrit 1 à 5 propriétés d’un appareil avec lequel cette mise à jour est compatible. Chaque propriété est une string paire nom-valeur de type. Le nom doit comporter de 1 à 32 caractères et la valeur de 1 à 64 caractères. Vous ne pouvez pas utiliser le même ensemble exact 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. La valeur par défaut d’un objet step n’est fournie si inline aucune valeur n’est type fournie.

Propriété Catégorie Descriptif Obligatoire
étapes array[1-10] Chaque élément du steps tableau doit être soit un objet step en ligne , soit un objet step de référence. Oui

Par exemple:

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

Objet d’étape en ligne

Un inline objet step est une étape d’instruction d’installation qui effectue l’exécution du code.

Propriété Catégorie Descriptif Obligatoire
type string Type d’étape d’instruction qui exécute 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’instruction. Longueur maximale : 64 caractères. Non
gestionnaire string Identité du gestionnaire sur l’appareil qui peut exécuter cette étape.
Modèle : ^\S+/\S+:\d{1,5}$
Longueur minimale : cinq caractères
Longueur maximale : 32 caractères
Exemples : microsoft/script:1, microsoft/swupdate:2, microsoft/apt:1
Oui
fichiers string [1-10] Noms des fichiers de mise à jour définis en tant qu’objets fichier que l’agent transmet au gestionnaire. La longueur de chaque élément doit être de 1 à 255 caractères. Oui
propriétésDuGestionnaire inlineStepHandlerProperties Objets JSON que l’agent transmet 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 reference objet step est une instruction d’installation permettant d’installer une autre mise à jour.

Propriété Catégorie Descriptif Obligatoire
type referenceStepType Type d’étape d’instruction qui installe une autre mise à jour. Doit être reference. Oui
description stepDescription Description facultative de l’étape d’instruction. Longueur maximale : 64 caractères. Non
identifiant de mise à jour 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 Files

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

Propriété Catégorie Descriptif Obligatoire
nom de fichier string Mettez à jour le nom du fichier de charge utile. Longueur maximale : 255 caractères Oui
tailleEnOctets number Taille du fichier en nombre d’octets. Taille maximale : octets 2147483648 Oui
Hachages fileHashes Hachages de fichiers codés en base64 avec le nom de l’algorithme comme clé. Au moins l’algorithme SHA-256 doit être spécifié, et des algorithmes supplémentaires peuvent être spécifiés s’ils sont pris en charge par l’agent. Voir l’objet Hashes pour plus de détails sur le calcul du hachage. Oui
relatedFiles relatedFile[0-4] Collection de fichiers liés à un ou plusieurs fichiers de charge utile primaires. Pour plus d’informations, consultez l’objet relatedFiles. Non
downloadHandler downloadHandler Spécifie le mode de traitement des fichiers associés. Oui, si vous utilisez relatedFiles. Pour plus d’informations, consultez l’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 Hashes

L’objet hashes contient des hachages de fichiers codés en base64 avec les noms de l’algorithme sous forme de clés. Au moins l’algorithme SHA-256 doit être spécifié, et d’autres algorithmes peuvent être spécifiés si pris en charge par l’agent. Pour obtenir un exemple de calcul correct du hachage, consultez la Get-AduFileHashes fonction dans le script AduUpdate.psm1.

Propriété Catégorie Descriptif Obligatoire
sha256 string Valeur de hachage de fichier codé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 associés à un ou plusieurs fichiers de charge utile primaires. Pour plus d’informations, consultez Utiliser la fonctionnalité Fichiers associés pour référencer plusieurs fichiers de mise à jour.

Propriété Catégorie Descriptif Obligatoire
nom de fichier string Liste des fichiers associés associés à un fichier de charge utile principal. Oui
tailleEnOctets number Taille du fichier en nombre d’octets. Taille maximale : 2147483648 octets. Oui
Hachages fileHashes Hachages de fichiers codés en base64 avec le nom de l’algorithme comme clé. Pour plus d’informations, consultez Objet Hachages. Oui
Propriétés relatedFilesProperties [0-5] Jusqu’à 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="
    }
  }
],

downloadHandler, objet

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

Propriété Catégorie Descriptif Obligatoire
id string Identificateur de 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"
}