Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:
IoT Edge 1.5
Importante
IoT Edge 1.5 LTS es la versión compatible. IoT Edge 1.4 LTS alcanzó el final del ciclo de vida el 12 de noviembre de 2024. Si usa una versión anterior, consulte Update IoT Edge.
En este artículo se proporcionan instrucciones paso a paso para registrar y aprovisionar un IoT Edge para Linux en Windows dispositivo.
Cada dispositivo que se conecta a un centro de IoT tiene un identificador de dispositivo que realiza un seguimiento de las comunicaciones de la nube al dispositivo o del dispositivo a la nube. Configure un dispositivo con su información de conexión, incluido el nombre de host IoT hub, el identificador de dispositivo y la información que usa el dispositivo para autenticarse en IoT Hub.
En este artículo se explica el aprovisionamiento manual, donde se conecta un único dispositivo a su centro de IoT. Para el aprovisionamiento manual, puede usar una de estas dos opciones para autenticar IoT Edge dispositivos:
Symmetric keys: al crear una nueva identidad de dispositivo en IoT Hub, el servicio crea dos claves. Coloque una de las claves en el dispositivo y presenta la clave para IoT Hub al autenticarse.
Este método de autenticación le permite empezar más rápido, pero no es tan seguro.
X.509 autofirmado: cree dos certificados de identidad X.509 y colóquelos en el dispositivo. Al crear una nueva identidad de dispositivo en IoT Hub, proporcione huellas digitales de ambos certificados. Cuando el dispositivo se autentica en IoT Hub, presenta un certificado y IoT Hub comprueba que el certificado coincide con su huella digital.
Este método de autenticación es más seguro y se recomienda para escenarios de producción.
En este artículo se describe el uso de certificados X.509 como método de autenticación. Para usar claves simétricas, consulte Crear y aprovisionar un IoT Edge para un dispositivo Linux en Windows usando claves simétricas.
Nota:
Si necesita configurar muchos dispositivos y no desea aprovisionar manualmente cada uno de ellos, use uno de los siguientes artículos para obtener información sobre cómo funciona IoT Edge con el servicio de aprovisionamiento de dispositivos IoT Hub:
Requisitos previos
En este artículo se explica cómo registrar el dispositivo IoT Edge e instalar IoT Edge para Linux en Windows. Estas tareas tienen requisitos previos diferentes y usan diferentes utilidades. Compruebe que cumple todos los requisitos previos antes de continuar.
Herramientas de administración de dispositivos
Puede usar el portal de Azure, Visual Studio Code o el Azure CLI para registrar el dispositivo. Cada utilidad tiene sus propios requisitos previos o es posible que tenga que instalarse:
Una IoT Hub gratuita o estándar en su suscripción de Azure.
Requisitos del dispositivo
Un dispositivo Windows con los siguientes requisitos mínimos:
Requisitos del sistema
- Windows 101/11 (Pro, Enterprise, IoT Enterprise)
- Windows Server 20191/2022
1 Windows 10 y Windows Server 2019, compilación mínima 17763, con todas las actualizaciones acumulativas actuales instaladas.
Requisitos de hardware
- Memoria libre mínima: 1 GB
- Espacio en disco libre mínimo: 10 GB
Compatibilidad con la virtualización
- En Windows 10, habilite Hyper-V. Para obtener más información, consulte Install Hyper-V.
- En Windows Server, instale el rol de Hyper-V y cree un conmutador de red predeterminado. Para obtener más información, consulte Nested virtualization for Azure IoT Edge for Linux on Windows.
- En una máquina virtual, configure la virtualización anidada. Para obtener más información, consulte Nested virtualization for Azure IoT Edge for Linux on Windows.
Soporte de red
- Windows Server no incluye un conmutador predeterminado. Para poder implementar EFLOW en un dispositivo Windows Server, debe crear un conmutador virtual. Para obtener más información, consulte creación de conmutadores virtuales en Azure IoT Edge para Linux en Windows.
- Windows Versiones de escritorio incluyen un conmutador predeterminado que puede usar para la instalación de EFLOW. Si es necesario, puede crear su propio conmutador virtual personalizado.
Sugerencia
Si desea usar GPU-accelerated Linux modules en la implementación de Azure IoT Edge para Linux en Windows, considere varias opciones de configuración.
Debe instalar los controladores correctos en función de la arquitectura de GPU y es posible que necesite acceder a una compilación de Windows Insider Program. Para determinar las necesidades de configuración y satisfacer estos requisitos previos, consulte aceleración de GPU para Azure IoT Edge para Linux en Windows.
Asegúrese de cumplir los requisitos previos para la aceleración de GPU ahora. Debe reiniciar el proceso de instalación si decide que desea la aceleración de GPU durante la instalación.
Herramientas para desarrolladores
Prepare el dispositivo de destino para la instalación de Azure IoT Edge para Linux en Windows y la implementación de la máquina virtual Linux:
Establezca la directiva de ejecución en el dispositivo de destino en
AllSigned. Puede comprobar la política de ejecución actual en una consola de PowerShell con privilegios elevados mediante el siguiente comando:Get-ExecutionPolicy -ListSi la directiva de ejecución de
local machineno esAllSigned, establezca la directiva de ejecución mediante:Set-ExecutionPolicy -ExecutionPolicy AllSigned -Force
Para obtener más información sobre el módulo de PowerShell de Azure IoT Edge para Linux en Windows, consulte la referencia de funciones de PowerShell.
Generación de los certificados de identidad del dispositivo
El aprovisionamiento manual con certificados X.509 requiere IoT Edge versión 1.0.10 o posterior.
Al aprovisionar un dispositivo IoT Edge con certificados X.509, se usa un certificado de identidad device. Este certificado solo se usa para aprovisionar un dispositivo IoT Edge y autenticar el dispositivo con Azure IoT Hub. Es un certificado de hoja que no firma otros certificados. El certificado de identidad del dispositivo es independiente de los certificados de entidad de certificación (CA) que el dispositivo de IoT Edge presenta a módulos o dispositivos de bajada para su comprobación.
En el caso de la autenticación mediante certificados X.509, la información de autenticación de cada dispositivo se proporciona en forma de huellas digitales tomadas de los certificados de identidad del dispositivo. Estas huellas digitales se proporcionan a IoT Hub en el momento del registro de dispositivos para que el servicio pueda reconocer el dispositivo cuando se conecta.
Para obtener más información sobre cómo se usan los certificados de autoridad de certificación en dispositivos IoT Edge, consulte Comprender cómo Azure IoT Edge usa certificados.
Necesita los siguientes archivos para el aprovisionamiento manual con X.509:
Dos certificados de identidad del dispositivo con sus certificados de clave privada coincidentes en los formatos .cer o .pem. Necesita dos certificados de identidad del dispositivo para la rotación de certificados. Como procedimiento recomendado, prepare dos certificados de identidad del dispositivo diferentes con fechas de expiración diferentes. Si un certificado expira, el otro sigue siendo válido y le da tiempo para rotar el certificado expirado.
Se proporciona un conjunto de archivos de certificado y clave al entorno de ejecución de IoT Edge. Al crear los certificados de identidad del dispositivo, establezca el nombre común del certificado (CN) con el ID de dispositivo que desea que tenga en su hub de IoT.
Huellas dactilares tomadas de ambos certificados de identidad del dispositivo. IoT Hub requiere dos huellas digitales al registrar un dispositivo IoT Edge. Solo puede usar un certificado para el registro. Para usar un solo certificado, establezca la misma huella digital de certificado para las huellas digitales principal y secundaria al registrar el dispositivo.
Los valores de huella digital son 40 caracteres hexadecimales para hashes de tipo SHA-1 o 64 caracteres hexadecimales para hashes de tipo SHA-256. Ambas huellas digitales se proporcionan a IoT Hub en el momento del registro del dispositivo.
Una manera de recuperar la huella digital de un certificado es con el siguiente comando openssl:
openssl x509 -in <certificate filename>.pem -text -fingerprintLa huella digital se incluye en la salida de este comando. Por ejemplo:
SHA1 Fingerprint=D2:68:D9:04:9F:1A:4D:6A:FD:84:77:68:7B:C6:33:C0:32:37:51:12
Si no tiene certificados disponibles, puede Crear certificados de demostración para probar las características del dispositivo IoT Edge. Siga las instrucciones de ese artículo para configurar scripts de creación de certificados, crear un certificado de entidad de certificación raíz y crear un certificado de identidad de dispositivo IoT Edge. Para las pruebas, puede crear un único certificado de identidad de dispositivo y usar la misma huella digital para los valores de huella digital principal y secundario al registrar el dispositivo en IoT Hub.
Registro del dispositivo
Puede usar el portal Azure, Visual Studio Code o Azure CLI registrar el dispositivo, según sus preferencias.
En el centro de IoT del portal de Azure, los dispositivos IoT Edge se crean y administran por separado de los dispositivos IoT que no están habilitados para Edge.
Inicie sesión en el portal Azure y vaya a IoT Hub.
En el menú de recursos, expanda el grupo Administración de dispositivos y seleccione Dispositivos y, a continuación, seleccione Agregar dispositivo en la barra de comandos.
En la página Crear un dispositivo, proporcione la información siguiente:
- Cree un identificador de dispositivo descriptivo. Anote este identificador de dispositivo, ya que lo usará más adelante.
- Seleccione la casilla IoT Edge Device.
- Seleccione X.509 autofirmado como el tipo de autenticación.
- Proporcione las huellas digitales de certificado de identidad principal y secundaria. Los valores de huella digital son 40 caracteres hexadecimales para hashes de tipo SHA-1 o 64 caracteres hexadecimales para hashes de tipo SHA-256. El portal de Azure solo admite valores hexadecimales. Quite los separadores de columna y los espacios de los valores de huella digital antes de escribirlos en el portal. Por ejemplo,
D2:68:D9:04:9F:1A:4D:6A:FD:84:77:68:7B:C6:33:C0:32:37:51:12se escribe comoD268D9049F1A4D6AFD8477687BC633C032375112.
Sugerencia
Si está probando y desea usar un certificado, puede usar el mismo certificado para las huellas digitales principal y secundaria.
Haga clic en Guardar.
Ahora que tiene un dispositivo registrado en IoT Hub, recupere la información que usa para completar la instalación y el aprovisionamiento del entorno de ejecución de IoT Edge.
Visualización de dispositivos registrados y recuperación de la información de aprovisionamiento
Los dispositivos que usan la autenticación de certificados X.509 necesitan su nombre del centro de IoT, su nombre de dispositivo y sus archivos de certificado para completar la instalación y el aprovisionamiento del entorno de ejecución de IoT Edge.
Todos los dispositivos habilitados para Edge que se conectan al centro de IoT se enumeran en la página Dispositivos. Puede filtrar la lista por el tipo de dispositivo, IoT Edge dispositivos.
Instalar IoT Edge
Implemente Azure IoT Edge para Linux en Windows en el dispositivo de destino.
Nota:
En el siguiente proceso de PowerShell se describe cómo implementar IoT Edge para Linux en Windows en el dispositivo local. Si quiere 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 cualquiera de los siguientes comandos en función de la arquitectura del dispositivo de destino 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_5_LTS_X64" -OutFile $msiPathARM64
$msiPath = $([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi')) $ProgressPreference = 'SilentlyContinue' Invoke-WebRequest "https://aka.ms/AzEFLOWMSI_1_5_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"Para especificar la instalación personalizada de IoT Edge para Linux en Windows y los directorios VHDX, agregue los parámetros
INSTALLDIR="<FULLY_QUALIFIED_PATH>"yVHDXDIR="<FULLY_QUALIFIED_PATH>"al comando de instalación. Por ejemplo, si quiere usar la carpeta D:\EFLOW para la instalación y la carpeta D:\EFLOW-VHDX para el VHDX, puede usar el siguiente cmdlet de PowerShell.Start-Process -Wait msiexec -ArgumentList "/i","$([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))","/qn","INSTALLDIR=D:\EFLOW", "VHDXDIR=D:\EFLOW-VHDX"Establezca la directiva de ejecución en el dispositivo de destino en
AllSignedsi aún no está configurada. Consulte los requisitos previos de PowerShell para los comandos a fin de comprobar la directiva de ejecución actual y establecer la directiva de ejecución enAllSigned.Creación de la implementación de IoT Edge para Linux en Windows. La implementación crea la máquina virtual Linux e instala el entorno de ejecución de IoT Edge automáticamente.
Deploy-EflowSugerencia
De forma predeterminada, el comando
Deploy-Eflowcrea la máquina virtual Linux con 1 GB de RAM, 1 núcleo de vCPU y 16 GB de espacio en disco. Sin embargo, los recursos que necesita la máquina virtual dependen en gran medida de las cargas de trabajo que implemente. Si la máquina virtual no tiene memoria suficiente para admitir las cargas de trabajo, no se puede iniciar.Puede personalizar los recursos disponibles de la máquina virtual mediante los
Deploy-Eflowparámetros opcionales del comando. Esta personalización es necesaria para implementar EFLOW en un dispositivo con los requisitos mínimos de hardware.Por ejemplo, el comando siguiente crea una máquina virtual con 1 núcleo vCPU, 1 GB de RAM (representado en MB) y 2 GB de espacio en disco:
Deploy-Eflow -cpuCount 1 -memoryInMB 1024 -vmDataSize 2Para obtener información sobre todos los parámetros opcionales disponibles, consulte funciones de PowerShell para IoT Edge para Linux en Windows.
Advertencia
De forma predeterminada, la máquina virtual Linux EFLOW no tiene configuración de DNS. Las implementaciones que usan DHCP intentan obtener la configuración de DNS propagada por el servidor DHCP. Compruebe la configuración de DNS para garantizar la conectividad a Internet. Para más información, consulte AzEFLOW-DNS.
Puede asignar una GPU a la implementación para habilitar módulos de Linux con aceleración por GPU. Para acceder a estas características, debe instalar los requisitos previos detallados en aceleración GPU para Azure IoT Edge para Linux en Windows.
Para usar un acceso directo de GPU, agregue los parámetros gpuName, gpuPassthroughType y gpuCount a su comando
Deploy-Eflow. Para obtener información sobre todos los parámetros opcionales disponibles, consulte funciones de PowerShell para IoT Edge para Linux en Windows.Advertencia
La habilitación del paso directo del dispositivo de hardware puede aumentar los riesgos de seguridad. Microsoft recomienda usar un controlador de mitigación de dispositivos del proveedor de GPU, si procede. Para obtener más información, vea Implementación de dispositivos gráficos mediante la asignación discreta de dispositivos.
Escriba Y para aceptar los términos de licencia.
Escriba O o R para activar o desactivar los datos de diagnóstico opcionales , según sus preferencias.
Una vez completada la implementación, la ventana de PowerShell indica Implementación correcta.
Después de una implementación exitosa, estás listo para aprovisionar tu dispositivo.
Aprovisionamiento del dispositivo con su identidad de nube
Configure el dispositivo con su información de autenticación e identidad en la nube.
Para aprovisionar el dispositivo mediante certificados X.509, necesita el nombre del IoT Hub, la ID del dispositivo, y las rutas de acceso absolutas al certificado de identidad y a la clave privada en el equipo host de Windows.
Asegúrese de que el certificado de identidad del dispositivo y su clave privada coincidente están en el dispositivo de destino. Disponga de la ruta de acceso absoluta a ambos archivos.
Ejecute el siguiente comando en una sesión de PowerShell con privilegios elevados en el dispositivo de destino. Reemplaza el texto de plantilla con tus propios valores.
Provision-EflowVm -provisioningType ManualX509 -iotHubHostname "HUB_HOSTNAME_HERE" -deviceId "DEVICE_ID_HERE" -identityCertPath "ABSOLUTE_PATH_TO_IDENTITY_CERT_HERE" -identityPrivKeyPath "ABSOLUTE_PATH_TO_PRIVATE_KEY_HERE"
Para obtener más información sobre el comando Provision-EflowVM, consulte PowerShell functions for IoT Edge for Linux on Windows.
Comprobación de configuración correcta
Compruebe que IoT Edge para Linux en Windows se instaló y configuró correctamente en el dispositivo IoT Edge.
Inicie sesión en su máquina virtual de IoT Edge en Linux en Windows usando el siguiente comando en su sesión de PowerShell:
Connect-EflowVmNota:
La única cuenta a la que se permite acceso SSH a 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 mediante el siguiente comando de Linux:
sudo iotedge listSi necesita solucionar problemas del servicio IoT Edge, use los siguientes comandos de Linux.
Recupere los registros de servicio.
sudo iotedge system logsUse la herramienta
checkpara comprobar el estado de configuración y conexión del dispositivo.sudo iotedge check
Nota:
En un dispositivo recién aprovisionado, puede ver un error relacionado con IoT Edge Hub:
× preparación para producción: el directorio de almacenamiento de Edge Hub se guarda en el sistema de archivos del host. Error
No se pudo comprobar el estado actual del contenedor de Edge Hub
Este error se espera en un nuevo dispositivo porque el módulo IoT Edge Hub no se está ejecutando. Para corregir el error, en IoT Hub, establezca los módulos para el dispositivo y cree una implementación. La creación de una implementación inicia los módulos en el dispositivo, incluido el módulo IoT Edge Hub.
Al crear un dispositivo IoT Edge nuevo, se muestra el código de estado 417 -- The device's deployment configuration is not set en el portal de Azure. Este estado es normal y significa que el dispositivo está listo para recibir una implementación de módulo.
Desinstalación de IoT Edge para Linux en Windows
Para desinstalar la instalación de Azure IoT Edge para Linux en Windows de su dispositivo, siga estos pasos.
- Abra Settings en Windows.
- Seleccione Agregar o quitar programas.
- Seleccione la aplicación Azure IoT Edge.
- Seleccione Desinstalar.
Pasos siguientes
- Continúe deploy IoT Edge modules para obtener información sobre cómo implementar módulos en el dispositivo.
- Aprenda a administrar certificados en la IoT Edge para Linux en Windows máquina virtual y transferir archivos desde el sistema operativo host a la máquina virtual Linux.
- Aprenda a configurar los dispositivos IoT Edge para comunicarse a través de un servidor proxy.