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