Inicio rápido: Implementación del primer módulo de IoT Edge en un dispositivo Windows

Se aplica a:marca de verificación de IoT Edge 1.4 IoT Edge 1.4

Importante

IoT Edge 1.4 es la versión admitida. Si está en una versión anterior, consulte Actualización de IoT Edge.

Pruebe Azure IoT Edge en este inicio rápido mediante la implementación de código en contenedor en un dispositivo IoT Edge para Linux en Windows. IoT Edge permite administrar de forma remota el código de los dispositivos para que pueda enviar más cargas de trabajo al perímetro. En este inicio rápido es aconsejable que use su propio dispositivo de cliente de Windows para ver lo fácil que es utilizar Azure IoT Edge para Linux en Windows. Si quiere usar Windows Server o una VM de Azure para crear la implementación, siga la guía paso a paso sobre instalación y aprovisionamiento de Azure IoT Edge para Linux en un dispositivo Windows.

En esta guía de inicio rápido, aprenderá a hacer lo siguiente:

  • Crear un Centro de IoT.
  • Registrar un dispositivo IoT Edge en su instancia de IoT Hub.
  • Instalar e iniciar Azure IoT Edge para Linux en el runtime de Windows del dispositivo.
  • Implementar un módulo de forma remota en un dispositivo IoT Edge y enviar datos de telemetría.

Diagrama que muestra la arquitectura de este inicio rápido para el dispositivo y la nube.

En este inicio rápido se explica cómo configurar Azure IoT Edge para Linux en un dispositivo Windows. Después, podrá implementar un módulo de Azure Portal en el dispositivo. El módulo que utilizará es un sensor simulado que genera datos de temperatura, humedad y presión. Otros tutoriales de Azure IoT Edge se basan en el trabajo que se realiza aquí mediante la implementación de módulos que analizan los datos simulados para obtener información empresarial.

Si no tiene una suscripción activa a Azure, cree una cuenta gratuita antes de comenzar.

Requisitos previos

Prepare el entorno para la CLI de Azure.

Cree un grupo de recursos en la nube para administrar todos los recursos que va a usar en este inicio rápido.

az group create --name IoTEdgeResources --location westus2

Asegúrese de que el dispositivo de IoT Edge cumpla con los requisitos siguientes:

  • Requisitos del sistema

    • Windows 101/11 (Pro, Enterprise, IoT Enterprise) 1 Versión mínima 17763 de Windows 10 con todas las actualizaciones acumulativas actuales instaladas.
  • Requisitos de hardware

    • Memoria libre mínima: 1 GB
    • Espacio libre en disco mínimo: 10 GB

Crear un centro de IoT

Empiece por crear un centro de IoT con la CLI de Azure.

Diagrama que muestra el paso para crear un centro de IoT.

El nivel gratuito de Azure IoT Hub funciona para este inicio rápido. Si ha usado IoT Hub en el pasado y ya tiene un centro creado, puede usarlo.

El código siguiente crea un centro F1 gratis en el grupo de recursos IoTEdgeResources. Reemplace {hub_name} por un nombre único para su centro de IoT. La creación de una instancia de IoT Hub puede tardar unos minutos.

az iot hub create --resource-group IoTEdgeResources --name {hub_name} --sku F1 --partition-count 2

Si se produce un error porque ya hay un centro gratuito en la suscripción, cambie la SKU a S1. Si recibe un error que le indica que el nombre del centro de IoT no está disponible, es que alguien más ya tiene un centro con ese nombre. Pruebe con uno nuevo.

Registro de un dispositivo de IoT Edge

Registre un dispositivo de IoT Edge con la instancia de IoT Hub recién creada.

Diagrama en el que se muestra el paso para registrar un dispositivo con una identidad de un centro de IoT.

Cree una identidad para el dispositivo simulado, con el fin de que pueda comunicarse con su centro de IoT. La identidad del dispositivo reside en la nube, y se usa una cadena de conexión de dispositivo única para asociar un dispositivo físico a una identidad de dispositivo.

Los dispositivos de IoT Edge se comportan y se pueden administrar de manera diferente a los dispositivos de IoT típicos. Utilice la marca --edge-enabled para declarar que esta identidad es para un dispositivo IoT Edge.

  1. En Azure Cloud Shell, escriba el comando siguiente para crear un dispositivo llamado myEdgeDevice en el centro.

    az iot hub device-identity create --device-id myEdgeDevice --edge-enabled --hub-name {hub_name}
    

    Si recibe un error acerca de las claves de directiva iothubowner, asegúrese de que Cloud Shell ejecuta la versión más reciente de la extensión Azure IoT.

  2. Vea la cadena de conexión del dispositivo, que vincula el dispositivo físico con su identidad en IoT Hub. Contiene el nombre del centro de IoT, el nombre del dispositivo y una clave compartida que autentica las conexiones entre los dos.

    az iot hub device-identity connection-string show --device-id myEdgeDevice --hub-name {hub_name}
    
  3. Copie el valor de la clave connectionString desde la salida JSON y guárdelo. Este valor es la cadena de conexión del dispositivo. Lo utilizará para configurar el tiempo de ejecución de IoT Edge en la sección siguiente.

    Por ejemplo, la cadena de conexión debe ser similar a HostName=contoso-hub.azure-devices.net;DeviceId=myEdgeDevice;SharedAccessKey=<DEVICE_SHARED_ACCESS_KEY>.

Instale e inicie el runtime de IoT Edge

Instale Azure IoT Edge para Linux en Windows en el dispositivo y configúrelo con la cadena de conexión del dispositivo.

Diagrama en el que se muestra el paso para iniciar el runtime de IoT Edge.

Ejecute los siguientes comandos de PowerShell en el dispositivo de destino donde quiera implementar Azure IoT Edge para Linux en Windows. Para realizar la implementación en un dispositivo de destino remoto mediante PowerShell, puede usar PowerShell remoto para establecer una conexión a un dispositivo remoto y ejecutar estos comandos de manera remota en ese dispositivo.

  1. En una sesión de PowerShell con privilegios elevados, ejecute los comandos siguientes para habilitar Hyper-V. Para obtener más información, consulte Hyper-V en Windows 10.

    Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
    
  2. En una sesión de PowerShell con privilegios elevados, ejecute cada uno de los siguientes comandos para descargar IoT Edge para Linux en Windows.

    • X64/AMD64

      $msiPath = $([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))
      $ProgressPreference = 'SilentlyContinue'
      Invoke-WebRequest "https://aka.ms/AzEFLOWMSI_1_4_LTS_X64" -OutFile $msiPath
      
    • ARM64

      $msiPath = $([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))
      $ProgressPreference = 'SilentlyContinue'
      Invoke-WebRequest "https://aka.ms/AzEFLOWMSI_1_4_LTS_ARM64" -OutFile $msiPath
      
  3. Instale IoT Edge para Linux en Windows en el dispositivo.

    Start-Process -Wait msiexec -ArgumentList "/i","$([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))","/qn"
    
  4. Establezca la directiva de ejecución en el dispositivo de destino en AllSigned si todavía no lo está. Puede comprobar la directiva de ejecución actual en un símbolo del sistema de PowerShell con privilegios elevados con el siguiente comando:

    Get-ExecutionPolicy -List
    

    Si la directiva de ejecución de local machine no es AllSigned, puede establecer la directiva de ejecución con el siguiente comando:

    Set-ExecutionPolicy -ExecutionPolicy AllSigned -Force
    
  5. Creación de la implementación de IoT Edge para Linux en Windows.

    Deploy-Eflow
    
  6. Escriba "Y" para aceptar los términos de licencia.

  7. Escriba "O" o "R" para activar o desactivar la opción Datos de diagnóstico opcionales en función de sus preferencias. A continuación se muestra una implementación correcta.

    Captura de pantalla en la que se muestra que una implementación correcta indicará Implementación correcta al final de los mensajes de la consola.

  8. Aprovisione el dispositivo con la cadena de conexión del dispositivo que ha recuperado en la sección anterior. Reemplace el texto de marcador de posición por un valor propio.

    Provision-EflowVm -provisioningType ManualConnectionString -devConnString "<CONNECTION_STRING_HERE>"
    

El dispositivo de IoT Edge está ya configurado. Está preparado para ejecutar módulos implementados en la nube.

Implementación de un módulo

Administre el dispositivo Azure IoT Edge desde la nube para implementar un módulo que envía datos de telemetría a IoT Hub.

Diagrama que muestra el paso para implementar un módulo.

Una de las funcionalidades clave de Azure IoT Edge es la implementación de código en dispositivos de IoT Edge desde la nube. Los módulos de IoT Edge son paquetes ejecutables que se implementan como contenedores. En esta sección, va a implementar un módulo pregenerado desde la sección de módulos de IoT Edge de Azure Marketplace directamente desde la instancia de Azure IoT Hub.

El módulo que se implementa en esta sección simula un sensor y envía los datos generados. Este módulo es un fragmento de código útil para empezar a trabajar con IoT Edge porque se pueden usar los datos simulados para desarrollo y pruebas. Si desea ver exactamente lo que hace este módulo, puede ver el código fuente del sensor de temperatura simulado.

Siga estos pasos para implementar el primer módulo desde Azure Marketplace.

  1. Inicie sesión en Azure Portal y vaya al centro de IoT.

  2. En el menú de la izquierda, seleccione Dispositivos en el menú Administración de dispositivos.

  3. Seleccione el identificador del dispositivo de destino en la lista de dispositivos.

    Nota:

    Al crear un nuevo dispositivo IoT Edge, se mostrará el código de estado 417 -- The device's deployment configuration is not set en Azure Portal. Este estado es normal y significa que el dispositivo está listo para recibir una implementación de módulo.

  4. En la barra superior, seleccione Establecer módulos.

    Elija los módulos que desea ejecutar en el dispositivo. Puede elegir entre los módulos que ya ha creado, los módulos de Azure Marketplace o los módulos que ha compilado usted mismo. En este inicio rápido, implementará un módulo desde Azure Marketplace.

  5. En Módulos de IoT Edge, abra el menú desplegable Agregar y, a continuación, seleccione Módulo de Marketplace.

  6. En Marketplace de módulos IoT Edge, busque y seleccione el módulo Simulated Temperature Sensor. El módulo se agrega a la sección Módulos de IoT Edge con el estado en ejecución deseado.

  7. Seleccione Siguiente: Rutas para continuar configurando rutas.

    Una ruta llamada SimulatedTemperatureSensorToIoTHub se creó automáticamente al agregar el módulo desde Azure Marketplace. Esta ruta envía todos los mensajes desde el módulo de temperatura simulado a IoT Hub.

  8. Seleccione Siguiente: Review + create (Revisar y crear).

  9. Revise el archivo JSON y luego seleccione Crear. El archivo JSON define todos los módulos que se implementan en el dispositivo IoT Edge.

    Nota

    Cuando se envía una implementación nueva a un dispositivo IoT Edge, no se inserta nada en el dispositivo. En lugar de eso, el dispositivo consulta a IoT Hub de manera periódica para comprobar cualquier instrucción nueva. Si el dispositivo encuentra un manifiesto de implementación actualizado, usa la información sobre la nueva implementación para extraer las imágenes del módulo de la nube y, después, comienza a ejecutar localmente los módulos. Este proceso puede tardar unos minutos.

Después de crear los detalles de la implementación del módulo, el asistente lo lleva nuevamente a la página de detalles del dispositivo. Vea el estado de implementación en la pestaña Módulos.

Deben aparecer tres módulos: $edgeAgent, $edgeHub y SimulatedTemperatureSensor. Si se muestra para uno o varios de los módulos en Especificado en la implementación pero no en Notificado por el dispositivo, significa que el dispositivo IoT Edge todavía los está iniciando. Espere unos minutos y actualice la página.

Captura de pantalla en la que se muestra el sensor de temperatura simulado en la lista de módulos implementados.

Si tiene problemas para implementar módulos, consulte Solución de problemas de dispositivos IoT Edge desde Azure Portal.

Visualización de los datos generados

En esta guía de inicio rápido, ha creado un nuevo dispositivo de IoT Edge y ha instalado el runtime de IoT Edge en él. Luego, ha usado Azure Portal para implementar un módulo de IoT Edge para que se ejecute en el dispositivo sin tener que realizar cambios en el propio dispositivo.

El módulo que ha insertado genera los datos del entorno de ejemplo que puede usar posteriormente para las pruebas. El sensor simulado está supervisando una máquina y el entorno alrededor de esta. Por ejemplo, este sensor podría estar en una sala de servidores, en una fábrica o en un aerogenerador. Los mensajes que envía incluyen la temperatura y la humedad ambientales, la temperatura y la presión de la máquina y una marca de tiempo. Los tutoriales de IoT Edge usan los datos creados por este módulo como datos de prueba con fines de análisis.

  1. Inicie sesión en la instancia de IoT Edge para Linux en la máquina virtual Windows con el siguiente comando en la sesión de PowerShell:

    Connect-EflowVm
    

    Nota:

    La única cuenta que se permite a SSH en la máquina virtual es la del usuario que la creó.

  2. Una vez que haya iniciado sesión, puede comprobar la lista de módulos de IoT Edge en ejecución con el comando de Linux siguiente:

    sudo iotedge list
    

    Captura de pantalla en la que se muestra dónde comprobar que se están ejecutando los módulos de sensor de temperatura, agente y centrales.

  3. Vea los mensajes que se envían desde el módulo de sensor de temperatura a la nube por medio del siguiente comando de Linux:

    sudo iotedge logs SimulatedTemperatureSensor -f
    

    Captura de pantalla en la que se muestran los registros de salida del módulo Sensor de temperatura simulado cuando se ejecuta.

    Sugerencia

    Los comandos de IoT Edge distinguen las mayúsculas de las minúsculas en los nombres de los módulos.

Limpieza de recursos

Si desea continuar con los tutoriales de IoT Edge, omita este paso. Puede utilizar el dispositivo que ha registrado y configurado en este inicio rápido. En caso contrario, puede eliminar los recursos de Azure que creó para evitar gastos.

Si ha creado una máquina virtual y un centro de IoT en un nuevo grupo de recursos, puede eliminar dicho grupo y todos los recursos asociados. Si no desea eliminar todo el grupo, puede eliminar recursos individuales en su lugar.

Importante

Compruebe el contenido del grupo de recursos para asegurarse de que no haya nada que desee conservar. La eliminación de un grupo de recursos es irreversible.

Utilice el comando siguiente para quitar el grupo IoTEdgeResources. La eliminación puede tardar unos minutos.

az group delete --name IoTEdgeResources

Puede confirmar que se ha eliminado el grupo de recursos mediante este comando para ver la lista de grupos de recursos.

az group list

Desinstalación de IoT Edge para Linux en Windows

Si quiere desinstalar Azure IoT Edge para Linux en Windows de su dispositivo, siga estos pasos.

  1. Abrir la configuración en Windows
  2. Seleccione Agregar o quitar programas.
  3. Seleccione la aplicación Azure IoT Edge.
  4. Seleccione Desinstalar.

Pasos siguientes

En esta guía de inicio rápido, ha creado un dispositivo IoT Edge y ha usado la interfaz en la nube de Azure IoT Edge para implementar el código en el dispositivo. Ahora tiene un dispositivo de prueba que genera datos sin procesar acerca de su entorno.

En el siguiente tutorial, aprenderá a supervisar la actividad y el estado del dispositivo desde Azure Portal.