Inicio rápido: Implementación del primer módulo de IoT Edge en un dispositivo Windows
Se aplica a: IoT Edge 1.5 IoT Edge 1.4
Importante
IoT Edge 1.5 LTS e IoT Edge 1.4 LTS son versiones compatibles. IoT Edge 1.4 LTS finaliza el ciclo de vida el 12 de noviembre de 2024. 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.
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.
Use el entorno de Bash en Azure Cloud Shell. Para más información, consulte Inicio rápido para Bash en Azure Cloud Shell.
Si prefiere ejecutar comandos de referencia de la CLI localmente, instale la CLI de Azure. Si utiliza Windows o macOS, considere la posibilidad de ejecutar la CLI de Azure en un contenedor Docker. Para más información, vea Ejecución de la CLI de Azure en un contenedor de Docker.
Si usa una instalación local, inicie sesión en la CLI de Azure mediante el comando az login. Siga los pasos que se muestran en el terminal para completar el proceso de autenticación. Para ver otras opciones de inicio de sesión, consulte Inicio de sesión con la CLI de Azure.
En caso de que se le solicite, instale las extensiones de la CLI de Azure la primera vez que la use. Para más información sobre las extensiones, consulte Uso de extensiones con la CLI de Azure.
Ejecute az version para buscar cuál es la versión y las bibliotecas dependientes que están instaladas. Para realizar la actualización a la versión más reciente, ejecute az upgrade.
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.
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.
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.
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.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}
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.
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.
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
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
Instale IoT Edge para Linux en Windows en el dispositivo.
Start-Process -Wait msiexec -ArgumentList "/i","$([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))","/qn"
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 esAllSigned
, puede establecer la directiva de ejecución con el siguiente comando:Set-ExecutionPolicy -ExecutionPolicy AllSigned -Force
Creación de la implementación de IoT Edge para Linux en Windows.
Deploy-Eflow
Escriba "Y" para aceptar los términos de licencia.
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.
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.
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, implementará un módulo precompilado desde la sección Módulos de IoT Edge del Registro de artefactos Microsoft.
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.
Inicie sesión en Azure Portal y vaya a su instancia de IoT Hub.
En el menú de la izquierda, seleccione Dispositivos en el menú Administración de dispositivos.
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.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 del Registro de artefactos Microsoft o los módulos que ha compilado usted mismo. En este inicio rápido, implementará un módulo desde el Registro de artefactos de Microsoft.
En la sección Módulos de IoT Edge, seleccione Agregar y, a continuación, elija Módulo de IoT Edge.
Actualice la siguiente configuración del módulo:
Configuración Valor Nombre del módulo de IoT SimulatedTemperatureSensor
URI de imagen mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:latest
Directiva de reinicio Siempre Estado deseado en ejecución Seleccione Siguiente: Rutas para continuar configurando rutas.
Agregue una ruta que envíe todos los mensajes desde el módulo de temperatura simulado a IoT Hub.
Configuración Value NOMBRE SimulatedTemperatureSensorToIoTHub
Valor FROM /messages/modules/SimulatedTemperatureSensor/* INTO $upstream
Seleccione Siguiente: Review + create (Revisar y crear).
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 SÍ 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.
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.
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ó.
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
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
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.
- Abrir la configuración en Windows
- Seleccione Agregar o quitar programas.
- Seleccione la aplicación Azure IoT Edge.
- 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.