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
Una cuenta y una instancia de Device Update configuradas con una instancia de IoT Hub.
Un dispositivo o simulador de IoT Aprovisionado para Device Update dentro del centro de IoT.
El entorno de Bash en Azure Cloud Shell para ejecutar comandos de la CLI de Azure. Seleccione Iniciar Cloud Shell para abrir Cloud Shell o seleccione el icono de Cloud Shell en la barra de herramientas superior de Azure Portal.
Si lo prefiere, puede ejecutar los comandos de la CLI de Azure localmente:
- Instalación de la CLI de Azure. Ejecute az version para ver la versión instalada de la CLI de Azure y las bibliotecas dependientes, y ejecute az upgrade para instalar la versión más reciente.
- Ejecute az login para iniciar sesión en Azure.
- Instale la extensión
azure-iot
cuando se le solicite por primera vez. Para asegurarse de que usa la versión más reciente de la extensión, ejecuteaz extension update --name azure-iot
.
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 objetoupdateId
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 elhandler
de actualización en el dispositivo, comomicrosoft/script:1
,microsoft/swupdate:1
, omicrosoft/apt:1
, y sus asociadosproperties
para esta actualización. Puede usar--step
más de una vez. - El parámetro
--file
especifica elpath
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>
Contenido relacionado
- Conceptos de importación de Device Update
- Información de API y esquema de importación de Device Update
- Actualizaciones de proxy y actualización de varios componentes
- Importación de una actualización
- Uso de la característica de archivos relacionados para hacer referencia a varios archivos de actualización