Compartir a través de


Preparación de una actualización para la importación en Device Update

En este artículo se describe cómo obtener una nueva actualización y prepararla para importarla en Azure Device Update for IoT Hub mediante la creación de un manifiesto de importación.

Requisitos previos

Sugerencia

Los comandos de la CLI de Azure de este artículo usan el carácter de barra diagonal inversa \ para la continuación de línea para que los argumentos del comando sean más fáciles de leer. Esta sintaxis funciona en entornos Bash. Si ejecuta estos comandos en PowerShell, reemplace cada barra diagonal inversa por una barra diagonal inversa "o quítelas por completo.

Obtener los archivos de actualización del dispositivo

Obtenga el archivo o los archivos de actualización que se van a implementar en el dispositivo mediante Device Update. Si compró dispositivos de un fabricante de equipos originales (OEM) o integrador de soluciones, esa organización probablemente proporcione actualizaciones sin tener que crear archivos de actualización. Póngase en contacto con el OEM o el integrador de soluciones para saber cómo facilitan sus actualizaciones. Si su organización crea software para los dispositivos, también crea las actualizaciones de ese software.

Para crear la actualización, elija el tipo de actualización basado en imágenes o basado en paquetes, en función de su escenario.

Sugerencia

Puede probar los tutoriales de actualización basados en imágenes, paquetes o proxy, o sencillamente ver los archivos de manifiesto de importación de muestra de esos tutoriales como referencia.

Creación de un manifiesto de importación básico de Device Update

Una vez que tenga los archivos de actualización y esté familiarizado con los Conceptos básicos de importación de Device Update, cree un manifiesto de importación para describir la actualización. Aunque puede crear un manifiesto de importación JSON manualmente mediante un editor de texto, el comando de la CLI de Azure az iot du init v5 simplifica el proceso. Para obtener más información acerca del esquema del manifiesto de importación, consulte Esquema de importación de Device Update e información sobre la API.

El comando az iot du init v5 toma los argumentos siguientes. Se requieren todos excepto --file, que se deriva de --step si no se especifica. Hay sensibilidad posicional entre --step y --file.

  • Los parámetros --update-provider, --update-name, y --update-version definen el objeto updateId que es un identificador único para cada actualización.
  • El objeto de compatibilidad --compat es un conjunto de pares nombre-valor que describen las propiedades de un dispositivo con el que esta actualización es compatible. Puede usar un conjunto específico de propiedades de compatibilidad con solo un proveedor y una combinación de nombres.
  • El parámetro --step especifica el handler de actualización en el dispositivo, como microsoft/script:1, microsoft/swupdate:1, o microsoft/apt:1, y sus asociados properties para esta actualización. Puede usar --step más de una vez.
  • El parámetro --file especifica el path a los archivos de actualización. Puede usar --file una o varias veces.
az iot du update init v5 \
    --update-provider <provider> \
    --update-name <update name> \
    --update-version <update version> \
    --compat <property1>=<value> <property2>=<value> \
    --step handler=<handler> properties=<JSON-formatted handler properties> \
    --file path=<paths and full file names of your update files> 

El siguiente comando az iot du update init v5 muestra valores de ejemplo:

az iot du update init v5 \
    --update-provider Microsoft \
    --update-name AptUpdate \
    --update-version 1.0.0 \
    --compat manufacturer=Contoso model=Vacuum \
    --step handler=microsoft/script:1 properties='{"installedCriteria": "1.0"}' \
    --file path=/my/apt/manifest/file

Sugerencia

En el caso de las propiedades del controlador, es posible que tenga que escapar determinados caracteres en el JSON. Por ejemplo, use '\' para escapar entre comillas dobles si ejecuta la CLI de Azure en PowerShell.

El comando az iot du init v5 admite escenarios avanzados, incluida la característica de archivos relacionados, que permite definir la relación entre diferentes archivos de actualización. Para obtener más ejemplos y una lista completa de parámetros opcionales, consulte la referencia del comando az iot du init v5.

Una vez creado el manifiesto de importación y guárdelo como un archivo JSON, puede importar la actualización. Si tiene previsto usar Azure Portal para la importación, asegúrese de asignar un nombre al manifiesto de importación con el formato <manifestname>.importmanifest.json.

Creación de un manifiesto de importación avanzada de Device Update para una actualización de proxy

Si la actualización es más compleja, como una actualización de proxy, es posible que tenga que crear varios manifiestos de importación. Para actualizaciones complejas, puede usar el comando CLI de Azure az iot du update init v5 para crear un manifiesto de importación primario y un número determinado de manifiestos de importación secundarios.

Reemplace los valores de marcador de posición en los siguientes comandos de la CLI de Azure. Para obtener más información sobre los valores que puede usar, consulte Importar esquema e información de API. En el ejemplo siguiente se muestran tres actualizaciones para implementar en el dispositivo, una actualización primaria y dos actualizaciones secundarias.

az iot du update init v5 \
    --update-provider <child_1 update provider> \
    --update-name <child_1 update name> \
    --update-version <child_1 update version> \
    --compat manufacturer=<device manufacturer> model=<device model> \
    --step handler=<handler> \
    --file path=<paths and full file names of your update files> 
az iot du update init v5 \
    --update-provider <child_2 update provider> \
    --update-name <child_2 update name> \
    --update-version <child_2 update version> \
    --compat manufacturer=<device manufacturer> model=<device model> \
    --step handler=<handler> \
    --file path=<paths and full file names of your update files> 
az iot du update init v5 \
    --update-provider <parent update provider> \
    --update-name <parent update name> \
    --update-version <parent update version> \
    --compat manufacturer=<device manufacturer> model=<device model> \
    --step handler=<handler> properties=<any handler properties, JSON-formatted> \
    --file path=<paths and full file names of your update files> \
    --step updateId.provider=<child_1 update provider> updateId.name=<child_1 update name> updateId.version=<child_1 update version> \
    --step updateId.provider=<child_2 update provider> updateId.name=<child_2 update name> updateId.version=<child_2 update version>