Partager via


Concepts d’importation Azure Device Update pour IoT Hub

Pour déployer une mise à jour sur des appareils à l’aide d’Azure Device Update pour IoT Hub, commencez par importer la mise à jour dans le service Device Update, qui stocke la mise à jour importée et la déploie sur les appareils. Cet article propose une vue d’ensemble de certains concepts importants à comprendre en ce qui concerne l’importation de mises à jour.

Manifeste d’importation

Un manifeste d’importation est un fichier JSON qui définit des informations importantes sur la mise à jour que vous importez. Vous soumettez à la fois votre manifeste d’importation et le ou les fichiers de mise à jour associés, par exemple, un package de mise à jour de microprogramme, dans le cadre du processus d’importation. Les métadonnées définies dans le manifeste d’importation sont utilisées pour ingérer la mise à jour. Certaines métadonnées sont également utilisées au moment du déploiement, par exemple pour vérifier si une mise à jour a été correctement installée.

Le code JSON suivant montre un exemple de fichier manifeste d’importation :

{
  "updateId": {
    "provider": "Contoso",
    "name": "Toaster",
    "version": "1.0"
  },
  "isDeployable": false,
  "compatibility": [
    {
      "manufacturer": "Contoso",
      "model": "Toaster"
    }
  ],
  "instructions": {
    "steps": [
      {
        "handler": "microsoft/swupdate:2",
        "files": [
          "firmware.swu"
        ],
        "handlerProperties": {
          "installedCriteria": "1.0"
        }
      }
    ]
  },
  "files": [
    {
      "filename": "firmware.swu",
      "sizeInBytes": 7558,
      "hashes": {
        "sha256": "/CD7Sn6fiknWa3NgcFjGlJ+ccA81s1QAXX4oo5GHiFA="
      }
    }
  ],
  "createdDateTime": "2022-01-19T06:23:52.6996916Z",
  "manifestVersion": "5.0"
}

Les sections du fichier manifeste d’importation représentent des concepts importants de Device Update, comme décrit dans les sections suivantes. Pour plus d’informations sur l’intégralité du schéma du manifeste d’importation, consultez Schéma JSON du manifeste d’importation.

Identité de la mise à jour

L’identité de mise à jour, ou updateId, correspond à l’identificateur unique d’une mise à jour et contient les propriétés suivantes :

  • Provider est l’entité qui crée ou qui est responsable de la mise à jour. Provider est souvent un nom d’entreprise.
  • Name est l’identificateur d’une classe de mise à jour. Nom est souvent un nom de classe ou de modèle d’appareil.
  • Version est un numéro qui distingue cette mise à jour des autres mises à jour qui ont le même fournisseur et le même nom.

Par exemple :

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

Remarque

L’updateId est utilisé uniquement par le service Device Update et diffère des identités des composants logiciels sur les appareils.

Compatibilité

La section Compatibility utilise une ou plusieurs paires clé-valeur arbitraires pour définir les appareils pouvant installer une mise à jour. Seuls les appareils qui indiquent des propriétés correspondant aux valeurs de compatibilité sont éligibles pour déployer la mise à jour. Vous pouvez procéder à une mise à jour compatible avec plusieurs classes d’appareil en incluant plusieurs ensembles de propriétés de compatibilité d’appareil.

L’exemple suivant montre une mise à jour qui peut être déployée uniquement sur les appareils qui indiquent Contoso et Toaster comme fabricant et modèle d’appareil.

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

Instructions

La section Instructions contient les informations ou les étapes dont a besoin l’agent de l’appareil pour installer la mise à jour. La mise à jour la plus simple contient une seule étape directe qui exécute le fichier de charge utile de mise à jour à l’aide d’un gestionnaire inscrit auprès de l’agent d’appareil. L’exemple suivant montre une section d’instructions composée d’une seule étape.

{
  "instructions": {
    "steps": [
      {
        "handler": "microsoft/swupdate:2",
        "files": [
          "contoso.toaster.1.0.swu"
        ]
      }
    ]
  }
}

Remarque

La propriété handler équivaut à la propriété updateType dans le manifeste d’importation version 3.0 ou antérieure.

Une mise à jour peut contenir plusieurs étapes, comme dans l’exemple suivant :

{
  "instructions": {
    "steps": [
      {
        "description": "pre-install script",
        "handler": "microsoft/script:1",
        "handlerProperties": {
          "arguments": "--pre-install"
        },
        "files": [
          "configure.sh"
        ]
      },
      {
        "description": "firmware package",
        "handler": "microsoft/swupdate:2",
        "files": [
          "contoso.toaster.1.0.swu"
        ]
      }
    ]
  }
}

Une mise à jour peut contenir des étapes de référence qui indiquent à l’agent de l’appareil d’installer une autre mise à jour avec son propre manifeste d’importation, établissant ainsi une relation de mise à jour parent et enfant. Une mise à jour peut contenir n’importe quelle combinaison d’étapes directes et de référence.

Par exemple, une mise à jour pour un toaster peut contenir deux mises à jour enfants :

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

Fichiers

La section Files du manifeste d’importation contient des métadonnées de fichier de charge utile de mise à jour telles que name, size et hash. Device Update utilise ces métadonnées pour la validation de l’intégrité pendant le processus d’importation et transfère les mêmes informations à l’agent de l’appareil pour la validation de l’intégrité avant l’installation.

Remarque

Une mise à jour parent qui contient uniquement des étapes de référence ne définit aucun fichier de charge utile de mise à jour.

Créer un manifeste d’importation

Même s’il est possible de créer manuellement du code JSON de manifeste d’importation à l’aide d’un éditeur de texte, Azure CLI simplifie considérablement le processus. Lorsque vous serez prêt à tester la création d’un manifeste d’importation, vous pourrez utiliser le guide pratique.

Important

Pour effectuer une importation dans le service Device Update via le portail Azure, le nom de fichier JSON du manifeste d’importation doit se terminer par .importmanifest.json.

Conseil

Vous pouvez utiliser Visual Studio Code pour activer l’autocomplétion et la validation du schéma JSON lorsque vous créez un manifeste d’importation.

Limites de l’importation de mises à jour

Certaines limites sont appliquées pour chaque instance Device Update pour IoT Hub. Si vous ne l’avez pas déjà fait, consultez Limites de Device Update.