Tutorial: Completar una actualización de proxy mediante Device Update para Azure IoT Hub

Si aún no lo ha hecho, consulte Uso de actualizaciones de proxy con Device Update para Azure IoT Hub.

Configuración de un dispositivo de prueba o una máquina virtual

En este tutorial se usa una máquina virtual (VM) Ubuntu Server 18.04 LTS como ejemplo.

Instalación del agente y las dependencias de Device Update

  1. Registro de packages.microsoft.com en el repositorio de paquetes de APT:

    sudo apt-get update
    
    sudo apt install curl
    
    curl https://packages.microsoft.com/config/ubuntu/18.04/multiarch/prod.list > ~/microsoft-prod.list
    
    sudo cp ~/microsoft-prod.list /etc/apt/sources.list.d/
    
    curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > ~/microsoft.gpg
    
    sudo cp ~/microsoft.gpg /etc/apt/trusted.gpg.d/
    
    sudo apt-get update
    
  2. Instale deviceupdate-agent en el dispositivo IoT. Descargue el archivo Debian de Device Update más reciente desde packages.microsoft.com:

    sudo apt-get install deviceupdate-agent
    

    Como alternativa, copie el archivo Debian descargado en la VM de prueba. Si usa PowerShell en el equipo, ejecute el siguiente comando de shell:

      scp <path to the .deb file> tester@<your vm's ip address>:~
    

    A continuación, acceda de forma remota a la VM y ejecute el siguiente comando de shell en la carpeta home:

          #go to home folder 
          cd ~
          #install latest Device Update agent
          sudo apt-get install ./<debian file name from the previous step>
    
  3. Vaya a Azure IoT Hub y copie la cadena de conexión principal del módulo Device Update del dispositivo IoT. Reemplace cualquier valor predeterminado del campo connectionData por la cadena de conexión principal del archivo du-config.json:

       sudo nano /etc/adu/du-config.json  
    

    Nota

    En su lugar, puede copiar la cadena de conexión principal del dispositivo, pero se recomienda usar la cadena para el módulo Device Update. Para obtener información sobre cómo configurar el módulo, consulte Aprovisionamiento del agente de actualización de dispositivos.

  4. Asegúrese de que /etc/adu/du-diagnostics-config.json contiene la configuración correcta de la recopilación de registros. Por ejemplo:

    {
      "logComponents":[
        {
          "componentName":"adu",
           "logPath":"/var/log/adu/"
        },
        {
          "componentName":"do",
          "logPath":"/var/log/deliveryoptimization-agent/"
        }
      ],
      "maxKilobytesToUploadPerLogPath":50
    }
    
  5. Reinicio del agente de Device Update:

    sudo systemctl restart adu-agent
    

Configuración de componentes de prueba

Con fines de prueba y demostración, crearemos los siguientes componentes de prueba en el dispositivo:

  • Tres motores
  • Dos cámaras
  • "hostfs"
  • "rootfs"

Importante

La configuración del componente anterior depende de la implementación de una extensión de enumerador de componentes de ejemplo denominada libcontoso-component-enumerator.so. También requiere este archivo de datos de inventario de componentes ficticios: /usr/local/contoso-devices/components-inventory.json.

  1. Copie la carpeta demo en el directorio principal de la VM de prueba. A continuación, ejecute el siguiente comando para copiar los archivos necesarios en las ubicaciones correctas:

    `~/demo/tools/reset-demo-components.sh` 
    

    El comando reset-demo-components.sh realiza los pasos siguientes en su nombre:

    1. Copia components-inventory.json y lo agrega a la carpeta /usr/local/contoso-devices.

    2. Copia la extensión de enumerador de componentes de Contoso (libcontoso-component-enumerator.so) de la carpeta Assets y la agrega a la carpeta /var/lib/adu/extensions/sources.

    3. Registra la extensión:

      sudo /usr/bin/AducIotAgent -E /var/lib/adu/extensions/sources/libcontoso-component-enumerator.so
      
  2. Vea y registre la versión de software de los componentes actuales mediante el comando siguiente para configurar la máquina virtual para que admita actualizaciones de proxy:

    ~/demo/show-demo-components.sh
    

Importación de una actualización de ejemplo

Si todavía no lo ha hecho, cree una instancia y una cuenta de Device Update, incluida la configuración de un centro de IoT. A continuación, inicie el procedimiento siguiente.

  1. Descargue los manifiestos e imágenes de importación de actualizaciones de proxy de la versión más reciente de Device Update en Recursos.

  2. Inicie sesión en Azure Portal y vaya a su instancia de IoT Hub con Device Update. En el panel izquierdo, seleccione Administración de dispositivos>Actualizaciones.

  3. Seleccione la pestaña Actualizaciones.

  4. Seleccione + Importar nueva actualización.

  5. Elija + Seleccionar uno del contenedor de almacenamiento y seleccione la cuenta de Storage y el contenedor.

    Screenshot that shows the button for selecting to import from a storage container.

  6. Seleccione Cargar para agregar los archivos que descargó en el paso 1.

  7. Cargue el manifiesto de importación primario, el manifiesto de importación secundario y los archivos de carga al contenedor.

    En el ejemplo siguiente se muestran los archivos de ejemplo cargados para actualizar las cámaras conectadas a un dispositivo de limpieza inteligente. También incluye un script de preinstalación para apagar las cámaras antes de la actualización por vía inalámbrica.

    En el ejemplo, el manifiesto de importación primario es contoso.Virtual-Vacuum-virtual-camera.1.4.importmanifest.json. El manifiesto de importación secundario con detalles para actualizar la cámara es Contoso.Virtual-Vacuum.3.3.importmanifest.json. Observe que ambos nombres de archivo de manifiesto siguen el formato necesario y terminan con .importmanifest.json.

    Screenshot that shows sample files uploaded to update cameras connected to a smart vacuum cleaner device.

  8. Elija Seleccionar.

  9. La interfaz de usuario muestra ahora la lista de archivos que se importarán a Device Update. Seleccione Importar actualización.

    Screenshot that shows listed files and the button for importing an update.

  10. Se inicia el proceso de importación y la pantalla cambia a la sección Historial de importación. Seleccione Actualizar para ver el progreso hasta que finalice el proceso de importación. Según el tamaño de la actualización, la importación podría finalizar en unos minutos o tardar más.

  11. Cuando la columna Estado indique que la importación se ha realizado correctamente, seleccione la pestaña Actualizaciones disponibles. Ahora debería ver la actualización importada en la lista.

    Screenshot that shows the imported update added to the list.

Más información sobre la importación de actualizaciones.

Creación de un grupo de actualización

  1. Vaya a la pestaña Groups and Deployments (Grupos e implementaciones) en la parte superior de la página. Screenshot of ungrouped devices.

  2. Seleccione el botón "Agregar grupo" para crear un grupo. Screenshot of device group addition.

  3. Seleccione una etiqueta de IoT Hub y una clase de dispositivo de la lista y, a continuación, seleccione Crear grupo. Screenshot of tag selection.

  4. Una vez creado el grupo, verá que se han actualizado la lista de grupos y el gráfico de Update Compliance. En el gráfico de Update Compliance se muestra el recuento de dispositivos en los distintos estados de compatibilidad: On latest update (Actualización más reciente), Nuevas actualizaciones disponibles y Actualizaciones en curso. Obtenga más información sobre Update Compliance.Screenshot of update compliance view.

  5. Debería ver el grupo recién creado y todas las actualizaciones disponibles para los dispositivos del nuevo grupo. Si hay dispositivos que no cumplen los requisitos de clase de dispositivo del grupo, se mostrarán en un grupo no válido correspondiente. Puede implementar la mejor actualización disponible en el nuevo grupo definido por el usuario desde esta vista haciendo clic en el botón "Implementar" situado junto al grupo.

Más información sobre cómo agregar etiquetas y crear grupos de actualización

Implementación de la actualización

  1. Una vez creado el grupo, debería ver una nueva actualización disponible para el grupo de dispositivos, con un vínculo a la actualización en Best Update (Mejor actualización) (puede que deba actualizar una vez). Obtenga más información sobre Update Compliance.

  2. Seleccione el grupo de destino haciendo clic en el nombre del grupo. Se le dirigirá a los detalles del grupo en Group basics (Conceptos básicos del grupo).

Group details

  1. Para iniciar la implementación, vaya a la pestaña Implementación actual. Haga clic en el vínculo de implementación situado junto a la actualización deseada en la sección Actualizaciones disponibles. La mejor actualización disponible para un grupo determinado se indicará con el término "Óptima" resaltado.

Select update

  1. Programe la implementación para que se inicie inmediatamente o en el futuro y, a continuación, seleccione Crear.

Create deployment

  1. El Estado en Detalles de implementación debe cambiar a Activo y la actualización implementada debe estar marcada con "(deploying)" ([implementando]).

Deployment active

  1. Consulte el gráfico de compatibilidad. Debería ver que la actualización está en curso.

  2. Una vez que el dispositivo se haya actualizado correctamente, debería ver que el gráfico de compatibilidad y la actualización de los detalles de implementación reflejan lo mismo.

    Update succeeded

Supervisión de una implementación de actualizaciones

  1. Seleccione la pestaña Historial de implementación en la parte superior de la página.

    Deployment History

  2. Seleccione el vínculo de detalles junto a la implementación que ha creado.

    Deployment details

  3. Seleccione Actualizar para ver los detalles de estado más recientes.

Acaba de completar una actualización correcta del proxy de un extremo a otro mediante Device Update for IoT Hub.

Limpieza de recursos

Cuando ya no los necesite, limpie la cuenta de Device Update, la instancia, IoT Hub y el dispositivo IoT.

Pasos siguientes

Puede usar los siguientes tutoriales para una demostración sencilla de Device Update for IoT Hub: