Importation de mises à jour dans Device Update pour IoT Hub : schéma et autres informations
Si vous souhaitez importer une mise à jour dans Device Update pour IoT Hub, veillez à consulter d’abord les concepts et le guide pratique. Si vous vous intéressez aux détails du schéma du manifeste d’importation lui-même, consultez ce qui suit.
Le schéma JSON du manifeste d’importation est hébergé sur SchemaStore.org.
schéma
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. Longueur maximale : 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 doit pas dépasser 2 Go. Peut être vide ou null 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 |
Date et heure de création du manifeste d’importation au format ISO 8601. Exemple : "2020-10-02T22:18:04.9446744Z" |
Oui |
Aucune propriété supplémentaire n’est autorisée.
Objet updateId
L’objet updateID est un identificateur unique pour chaque mise à jour.
Propriété | Type | Description | Obligatoire |
---|---|---|---|
provider | string |
Entité qui crée ou qui est directement responsable de la mise à jour. Il peut s’agir d’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. Il peut s’agir d’un nom de classe ou de modèle d’appareil. 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 seront supprimés. Modèle : ^\d+(?:\.\d+)+$ Exemples : "1.0" , "2021.11.8" |
Oui |
Aucune propriété supplémentaire n’est autorisée.
Par exemple :
{
"updateId": {
"provider": "Contoso",
"name": "Toaster",
"version": "1.0"
}
}
objet compatibilité
L’objet compatibilité décrit les propriétés d’un appareil avec lequel cette mise à jour est compatible.
- Type :
object
- Nombre minimal de propriétés :
1
- Nombre maximal de propriétés :
5
Chaque propriété est une paire nom-valeur de type chaîne.
- Longueur minimale du nom de propriété :
1
- Longueur maximale du nom de propriété :
32
- Longueur minimale de la valeur de propriété :
1
- Longueur maximale de la valeur de propriété :
64
Le même ensemble de propriétés de compatibilité ne peut pas être utilisé 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 mise à jour. L’objet instructions contient une liste d’étapes à suivre. Ces étapes peuvent être du code à exécuter ou un pointeur vers une autre mise à jour.
Propriété | Type | Description | Obligatoire |
---|---|---|---|
steps | array[1-10] |
Chaque élément du tableau doit être un objet inlineStep ou un objet referenceStep. | Oui |
Aucune propriété supplémentaire n’est autorisée.
Par exemple :
{
"instructions": {
"steps": [
{
"type": "inline",
...
},
{
"type": "reference",
...
}
]
}
}
Objet inlineStep
Un objet é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. Longueur maximale : 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}$ Longueur minimale : 5 caractères Longueur maximale : 32 caractères Exemples : microsoft/script:1 , microsoft/swupdate:1 , microsoft/apt:1 |
Oui |
files | string [1-10] |
Noms des fichiers de mise à jour définis en tant qu’objets fichier que l’agent passe au gestionnaire. Chaque élément du tableau doit avoir une longueur comprise entre 1 et 255 caractères. | Oui |
handlerProperties | inlineStepHandlerProperties |
Objet JSON que l’agent passera au gestionnaire en tant qu’arguments. | Non |
Aucune propriété supplémentaire n’est autorisée.
Par exemple :
{
"steps": [
{
"description": "pre-install script",
"handler": "microsoft/script:1",
"handlerProperties": {
"arguments": "--pre-install"
},
"files": [
"configure.sh"
]
}
]
}
Objet referenceStep
Un objet é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. Longueur maximale : 64 caractères |
Non |
updateId | updateId |
Identificateur de mise à jour unique. | Oui |
Aucune propriété supplémentaire n’est autorisée.
Par exemple :
{
"steps": [
{
"type": "reference",
"updateId": {
"provider": "Contoso",
"name": "Toaster.HeatingElement",
"version": "1.0"
}
}
]
}
Objet file
Un objet fichier est un fichier de charge utile de mise à jour, par exemple, binaire, microprogramme, script, etc. Chaque objet fichier doit être unique au sein d’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 moins l’algorithme SHA-256 doit être spécifié, et un algorithme supplémentaire peut être spécifié s’il est pris en charge par l’agent. Consultez ce qui suit pour plus d’informations sur la façon de calculer le hachage. | Oui |
relatedFiles | relatedFile[0-4] |
Collection de fichiers associés à un ou plusieurs de vos fichiers de charge utile principaux. | Non |
downloadHandler | downloadHandler |
Spécifie comment traiter les fichiers associés. | Oui uniquement si vous utilisez relatedFiles |
Aucune propriété supplémentaire n’est autorisée.
Par exemple :
{
"files": [
{
"filename": "configure.sh",
"sizeInBytes": 7558,
"hashes": {...}
}
]
}
Objet fileHashes
Hachages de fichier encodés en base64 avec le nom d’algorithme en tant que clé. 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 calcul correct du hachage, voir 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 |
Des propriétés supplémentaires sont autorisées.
Par exemple :
{
"hashes": {
"sha256": "/CD7Sn6fiknWa3NgcFjGlJ+ccA81s1QAXX4oo5GHiFA="
}
}
Objet relatedFiles
Collection de fichiers associés à un ou plusieurs de vos fichiers de charge utile principaux.
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. Taille maximale : 2147483648 octets |
Oui |
hashes | fileHashes |
Hachages de fichier encodés en base64 avec le nom d’algorithme comme clé. Au moins l’algorithme SHA-256 doit être spécifié, et un algorithme supplémentaire peut être spécifié s’il est pris en charge par l’agent. Consultez ce qui suit pour plus d’informations sur la façon de calculer le hachage. | Oui |
properties | relatedFilesProperties [0-5] |
Limite de 5 paires clé-valeur, où la clé est limitée à 64 caractères ASCII et la valeur est JObject (avec jusqu’à 256 caractères ASCII). | Non |
Des propriétés supplémentaires 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="
}
}
],
Pour plus d’informations, consultez Utiliser la fonctionnalité de fichiers associés pour référencer plusieurs fichiers de mise à jour.
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 |
Aucune propriété supplémentaire n’est autorisée.
Par exemple :
"downloadHandler": {
"id": "microsoft/delta:1"
}
Étapes suivantes
En savoir plus sur les concepts d’importation.
Si vous êtes prêt, suivez le Guide pratique d’importation, qui vous guidera pas à pas tout au long du processus d’importation.