Compartir vía


Actualización de IoT Edge

Se aplica a: icono IoT Edge 1.1

Importante

IoT Edge 1.1: la fecha de finalización del soporte técnico fue el 13 de diciembre de 2022. Consulte la página del ciclo de vida de productos de Microsoft para obtener información sobre cómo se admite este producto, servicio, tecnología o API. Para más información sobre cómo actualizar a la versión más reciente de IoT Edge, consulte Actualización de IoT Edge.

Dado que el servicio de IoT Edge lanza versiones nuevas, querrá actualizar los dispositivos IoT Edge para tener las últimas características y mejoras de seguridad. En este artículo se proporciona información sobre cómo actualizar los dispositivos IoT Edge cuando hay una versión nueva disponible.

Es necesario actualizar dos componentes lógicos de un dispositivo IoT Edge si quiere pasar a una versión más reciente. La primera es el subsistema de seguridad. Aunque la arquitectura del subsistema de seguridad cambió entre la versión 1.1 y la 1.2, sus responsabilidades generales seguían siendo las mismas. Se ejecuta en el dispositivo, controla las tareas basadas en seguridad e inicia los módulos cuando se inicia el dispositivo. Actualmente, el subsistema de seguridad solo puede actualizarse desde el propio dispositivo. El segundo componente es el entorno de ejecución, formado por los módulos Centro de IoT Edge y Agente de IoT Edge. En función del modo de estructurar la implementación, el entorno de ejecución puede actualizarse desde el dispositivo o de forma remota.

Debe actualizar el entorno de ejecución de IoT Edge y las capas de aplicación usan la misma versión de versión. Aunque se admiten versiones no coincidentes, no se prueban juntas. Use las secciones siguientes de este artículo para actualizar los niveles de tiempo de ejecución y de aplicación en un dispositivo:

  1. Actualización del subsistema de seguridad
  2. Actualización de los contenedores del entorno de ejecución
  3. Comprobación de la coincidencia de versiones
    • En el dispositivo, use iotedge version para comprobar la versión del subsistema de seguridad. La salida incluye los números de versión principal, secundaria y de revisión. Por ejemplo, iotedge 1.4.2.
    • En la configuración del entorno de ejecución de implementación de dispositivos, compruebe que las versiones de URI de imagen edgehub y edgeagent coincidan con la versión principal y secundaria del subsistema de seguridad. Si la versión del subsistema de seguridad es 1.4.2, las versiones de imagen serían 1.4. Por ejemplo, mcr.microsoft.com/azureiotedge-hub:1.4 y mcr.microsoft.com/azureiotedge-agent:1.4.

Para obtener la versión más reciente de Azure IoT Edge, consulte Versiones de Azure IoT Edge.

Actualización del subsistema de seguridad

El subsistema de seguridad de IoT Edge incluye un conjunto de componentes nativos que deben actualizarse mediante el administrador de paquetes en el dispositivo IoT Edge.

Compruebe la versión del subsistema de seguridad que se ejecuta en el dispositivo mediante el comando iotedge version. Si usa IoT Edge para Linux en Windows, debe conectarse mediante SSH a la máquina virtual Linux para comprobar la versión.

Importante

Si va a actualizar un dispositivo de la versión 1.0 o 1.1 a la versión más reciente, existen diferencias en los procesos de instalación y configuración que requieren pasos adicionales. Para más información, consulte los pasos que se indican más adelante en este artículo: Caso especial: actualización de 1.0 o 1.1 a la versión más reciente.

En los dispositivos Linux x64, use apt-get o el administrador de paquetes adecuado para actualizar el entorno de ejecución del módulo a la versión más reciente.

Actualice apt.

sudo apt-get update

Nota:

Para obtener instrucciones para obtener la configuración del repositorio más reciente de Microsoft, vea los pasos preliminares para la Instalación de IoT Edge.

Compruebe qué versiones de IoT Edge están disponibles.

apt list -a iotedge

Si desea actualizar a la versión más reciente del entorno de ejecución del módulo, use el siguiente comando, que también actualiza libiothsm-std a la versión más reciente:

sudo apt-get install iotedge

Si desea actualizar el entorno de ejecución del módulo a una versión específica, especifique la versión en la salida de la lista de apt. Cada vez que iotedge se actualiza, se intenta actualizar automáticamente el paquete libiothsm-std a su versión más reciente, lo que puede provocar un conflicto de dependencia. Si no va a la versión más reciente, asegúrese de tener como destino ambos paquetes para la misma versión. Por ejemplo, el siguiente comando instala una versión específica de la versión 1.1:

sudo apt-get install iotedge=1.1.1 libiothsm-std=1.1.1

Si la versión que desea instalar no está disponible a través de apt-get, puede usar curl para tener como destino cualquier versión del repositorio de versiones de IoT Edge. Para cualquier versión que desee instalar, localice los archivos libiothsm-std y iotedge adecuados para el dispositivo. En cada archivo, haga clic con el botón derecho sobre el vínculo del archivo y copie la dirección del vínculo. Use la dirección del vínculo para instalar las versiones específicas de esos componentes:

curl -L <libiothsm-std link> -o libiothsm-std.deb && sudo apt-get install ./libiothsm-std.deb
curl -L <iotedge link> -o iotedge.deb && sudo apt-get install ./iotedge.deb

A continuación, vuelva a aplicar la configuración para asegurarse de que el sistema está totalmente actualizado.

sudo iotedge config apply

Actualización de los contenedores del entorno de ejecución

El modo de actualizar los contenedores del centro de IoT Edge y del agente de IoT Edge depende de si usa etiquetas graduales (por ejemplo, 1.1) o etiquetas específicas (por ejemplo, 1.1.1) en la implementación.

Compruebe la versión de los módulos Agente de IoT Edge y Centro de IoT Edge instalada actualmente en el dispositivo mediante los comandos iotedge logs edgeAgent o iotedge logs edgeHub. Si usa IoT Edge para Linux en Windows, debe conectarse mediante SSH a la máquina virtual Linux para comprobar las versiones del módulo de runtime.

Búsqueda de la versión del contenedor en los registros

Información sobre las etiquetas de IoT Edge

Las imágenes del Agente de IoT Edge y del centro de IoT Edge se etiquetan con la versión de IoT Edge a la que están asociadas. Hay dos maneras diferentes de usar etiquetas con las imágenes del entorno de ejecución:

  • Etiquetas graduales: use solo los dos primeros valores del número de versión para obtener la imagen más reciente que coincida con esos dígitos. Por ejemplo, 1.1 se actualiza cada vez que hay una nueva versión para que apunte a la versión 1.1.x más reciente. Si el entorno de ejecución del contenedor en el dispositivo IoT Edge extrae la imagen de nuevo, se actualizan los módulos del entorno de ejecución a la versión más reciente. Las implementaciones de Azure Portal tienen como valor predeterminado las etiquetas graduales. Este enfoque se sugiere con fines de desarrollo.

  • Etiquetas específicas: use los tres valores del número de versión para establecer explícitamente la versión de la imagen. Por ejemplo, la versión 1.1.0 no cambiará después de su lanzamiento inicial. Puede declarar un nuevo número de versión del manifiesto de implementación cuando esté listo para actualizar. Este enfoque se sugiere con fines de producción.

Actualización de una imagen de etiqueta gradual

Si usa etiquetas graduales en la implementación (por ejemplo, mcr.microsoft.com/azureiotedge-hub:1.1), deberá forzar el entorno de ejecución del contenedor en el dispositivo para extraer la versión más reciente de la imagen.

Elimine la versión local de la imagen del dispositivo IoT Edge. En equipos con Windows, al desinstalar el subsistema de seguridad también se quitan las imágenes en tiempo de ejecución, por lo que no es necesario volver a realizar este paso.

docker rmi mcr.microsoft.com/azureiotedge-hub:1.1
docker rmi mcr.microsoft.com/azureiotedge-agent:1.1

Es posible que tenga que usar la marca -f de fuerza para eliminar las imágenes.

El servicio de IoT Edge extraerá las versiones más recientes de las imágenes del entorno de ejecución y volverá a iniciarlas automáticamente en el dispositivo.

Actualización de una etiqueta específica

Si usa etiquetas específicas en la implementación (por ejemplo, mcr.microsoft.com/azureiotedge-hub:1.1.1), solo tiene que actualizar la etiqueta en el manifiesto de implementación y aplicar los cambios en el dispositivo.

  1. En IoT Hub en Azure Portal, seleccione el dispositivo IoT Edge y luego Establecer módulos.

  2. En la sección Módulos de IoT Edge, seleccione Configuración del entorno de ejecución.

    Configuración de los parámetros de ejecución

  3. En Configuración del entorno de ejecución, actualice el valor Image del Centro de Microsoft Edge con la versión deseada. No seleccione Guardar todavía.

    Actualización de la versión de la imagen del Centro de Microsoft Edge

  4. Contraiga la configuración del Centro de Microsoft Edge, o desplácese hacia abajo, y actualice el valor de Image para el Agente de Edge con la misma versión deseada.

    Actualización de la versión del agente del Centro de Microsoft Edge

  5. Seleccione Guardar.

  6. Seleccione Revisar y crear, revise la implementación y, después, seleccione Crear.

Caso especial: actualización de 1.0 o 1.1 a la versión más reciente

A partir de la versión 1.2, el servicio IoT Edge usa un nombre de paquete nuevo y tiene algunas diferencias en los procesos de instalación y configuración. Si dispone de un dispositivo IoT Edge que ejecuta la versión 1.0 o 1.1, siga estas instrucciones para obtener información sobre cómo actualizar a la versión más reciente.

Algunas de las principales diferencias entre la versión más reciente y la versión 1.1 y anteriores incluyen:

  • El nombre del paquete ha cambiado de iotedge a aziot-edge.
  • El paquete libiothsm-std ya no se usa. Si usó el paquete estándar proporcionado como parte de la versión de IoT Edge, las configuraciones se pueden transferir a la nueva versión. Si usó una implementación diferente de libiothsm-std, deberá volver a configurar los certificados proporcionados por el usuario como el certificado de identidad de dispositivo, la CA de dispositivo y el paquete de confianza.
  • Un nuevo servicio de identidad, aziot-identity-service, se introdujo como parte de la versión 1.2. Este servicio controla el aprovisionamiento y la administración de identidades para IoT Edge y otros componentes de dispositivo que necesitan comunicarse con IoT Hub, como la actualización de dispositivos para IoT Hub.
  • El archivo de configuración predeterminado tiene un nombre y una ubicación nuevos. La información de configuración de dispositivo que anteriormente se encontraba en /etc/iotedge/config.yaml, ahora se espera que esté en /etc/aziot/config.toml de manera predeterminada. El comando iotedge config import se puede usar para ayudar a migrar la información de configuración de la ubicación y la sintaxis anteriores a las nuevas.
    • El comando de importación no puede detectar ni modificar las reglas de acceso al módulo de plataforma segura (TPM) de un dispositivo. Si el dispositivo usa la atestación de TPM, debe actualizar manualmente el archivo /etc/udev/rules.d/tpmaccess.rules para proporcionar acceso al servicio aziottpm. Para más información, vea Concesión a IoT Edge el acceso a TPM.
  • La API de carga de trabajo de la versión más reciente guarda los secretos cifrados en un nuevo formato. Si actualiza desde una versión anterior a la versión más reciente, se importa la clave de cifrado maestra existente. La API de carga de trabajo puede leer los secretos guardados en el formato anterior mediante la clave de cifrado importada. Sin embargo, la API de carga de trabajo no puede escribir secretos cifrados en el formato anterior. Una vez que un módulo vuelve a cifrar un secreto, se guarda en el nuevo formato. El mismo módulo de la versión 1.1 no puede leer los secretos cifrados en la versión más reciente. Si conserva los datos cifrados en una carpeta o volumen montados en host, cree siempre una copia de seguridad de los datos antes de la actualización para conservar la capacidad de cambiar a una versión anterior, si es necesario.
  • Por compatibilidad con versiones anteriores al conectar dispositivos que no admiten TLS 1.2, puede configurar Edge Hub para que siga aceptando TLS 1.0 o 1.1 a través de la variable de entorno SslProtocols. Tenga en cuenta que la compatibilidad con TLS 1.0 y 1.1 en IoT Hub se considera heredada y también se puede quitar Edge Hub en versiones futuras. Para evitar problemas en el futuro, use TLS 1.2 como la única versión de TLS al conectarse a Edge Hub o IoT Hub.
  • La versión preliminar del agente MQTT experimental de Edge Hub 1.2 ha finalizado y no se incluye en Edge Hub 1.3 o posterior. Seguimos perfeccionando nuestros planes para un agente de MQTT en función de los comentarios recibidos. Mientras tanto, si necesita un agente MQTT compatible con estándares en IoT Edge, considere la posibilidad de implementar un agente de código abierto (Mosquitto, por ejemplo) como un módulo de IoT Edge.
  • A partir de la versión 1.2, cuando se quita una imagen de respaldo de un contenedor, este continúa ejecutándose y se mantiene entre reinicios. En la versión 1.1, cuando se quita una imagen de respaldo, el contenedor se vuelve a crear inmediatamente y se actualiza la imagen de respaldo.

Antes de automatizar los procesos de actualización, compruebe que funciona en máquinas de prueba.

Cuando esté listo, siga estos pasos para actualizar IoT Edge en los dispositivos:

  1. Actualice apt.

    sudo apt-get update
    
  2. Desinstale la versión anterior de IoT Edge, manteniendo los archivos de configuración en su lugar.

    sudo apt-get remove iotedge
    
  3. Instale la versión más reciente de IoT Edge, junto con el servicio de identidad de IoT y el microagente de Microsoft Defender para IoT para Edge.

    sudo apt-get install aziot-edge defender-iot-micro-agent-edge
    

Se recomienda instalar el microagente con el agente de Edge para habilitar la supervisión de seguridad y la protección de los dispositivos de Edge. Para obtener más información sobre Microsoft Defender para IoT, consulte ¿Qué es Microsoft Defender para IoT para generadores de dispositivos?.

  1. Importe el archivo config.yaml antiguo a su nuevo formato y aplique la información de configuración.

    sudo iotedge config import
    

Ahora que se ha actualizado el servicio IoT Edge que se ejecuta en los dispositivos, siga los pasos de este artículo para Actualizar los contenedores en tiempo de ejecución también.

Pasos siguientes

Consulte las últimas versiones de Azure IoT Edge.

Permanezca actualizado con los anuncios y las actualizaciones recientes del blog de Internet de las cosas.