Creación y aprovisionamiento de un dispositivo IoT Edge en Windows con claves simétricas

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 obtener más información sobre cómo actualizar a la versión más reciente de IoT Edge, vea Actualizar IoT Edge.

En este artículo se proporcionan instrucciones completas para registrar y aprovisionar un dispositivo IoT Edge de Windows.

Nota

Azure IoT Edge con contenedores Windows no se admitirá a partir de la versión 1.2 de Azure IoT Edge.

Considere la posibilidad de usar el nuevo método para ejecutar IoT Edge en dispositivos Windows, Azure IoT Edge para Linux en Windows.

Si desea usar Azure IoT Edge para Linux en Windows, puede seguir los pasos de la guía de procedimientos equivalente.

Todos los dispositivos que se conectan a IoT Hub tienen un identificador de dispositivo que se usa para realizar 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, que incluye el nombre de host del centro de IoT, el identificador de dispositivo y la información que el dispositivo usa para autenticarse en IoT Hub.

Los pasos de este artículo le guían a través de un proceso denominado aprovisionamiento manual, donde conecta un único dispositivo a su centro de IoT. Para el aprovisionamiento manual, tiene dos opciones para autenticar dispositivos IoT Edge:

  • Claves simétricas: cuando se crea una identidad de dispositivo en IoT Hub, el servicio crea dos claves. Debe colocar una de las claves en el dispositivo y este presenta la clave a IoT Hub al autenticarse.

    Este método de autenticación es más rápido para comenzar, pero no es tan seguro.

  • X.509 autofirmado: cree dos certificados de identidad X.509 y colóquelos en el dispositivo. Cuando se crea una identidad de dispositivo nueva en IoT Hub, se proporcionan huellas digitales desde 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 los escenarios de producción.

En este artículo se describe el uso de claves simétricas como método de autenticación. Si desea usar certificados X.509, consulte Creación y aprovisionamiento de un dispositivo IoT Edge en Windows mediante certificados X.509.

Nota

Si tiene muchos dispositivos para configurar y no quiere aprovisionar manualmente cada uno, siga uno de los artículos a continuación para obtener información sobre cómo funciona IoT Edge con IoT Hub Device Provisioning Service:

Prerrequisitos

En este artículo se explica cómo registrar un dispositivo IoT Edge e instalar IoT Edge en él. Estas tareas tienen requisitos previos y utilidades diferentes que se usan para realizarlas. Asegúrese de que cumple todos los requisitos previos antes de continuar.

Herramientas de administración de dispositivos

Puede usar Azure Portal, Visual Studio Code o la CLI de Azure para seguir los pasos para registrar el dispositivo. Cada utilidad tiene sus propios requisitos previos:

Un centro de IoT gratuito o estándar en la suscripción de Azure.

Requisitos de los dispositivos

Un dispositivo Windows.

IoT Edge para contenedores de Windows requiere la versión 1809/compilación 17763 de Windows, que es la compilación de compatibilidad con Windows a largo plazo más reciente. Asegúrese de examinar la lista de sistemas compatibles para obtener una lista de las SKU admitidas.

Tenga en cuenta que las versiones de Windows en el contenedor y el host deben coincidir. Para obtener más información, consulte No se pudo iniciar el módulo debido a un error de coincidencia del sistema operativo.

Registrar el dispositivo

Puede usar Azure Portal, Visual Studio Code o la CLI de Azure para registrar el dispositivo, según su preferencia.

En su centro de IoT en Azure Portal, los dispositivos IoT Edge se crean y administran por separado de los dispositivos IOT que no están habilitados para Edge.

  1. Inicie sesión en Azure Portal y vaya a IoT Hub.

  2. En el panel izquierdo, seleccione Dispositivos en el menú y, luego, elija Agregar dispositivo.

  3. En la página Crear un dispositivo, proporcione la información siguiente:

    • Cree un id. de dispositivo descriptivo. Anote este identificador de dispositivo, ya que lo usará más adelante.
    • Active la casilla Dispositivo IoT Edge.
    • Seleccione Clave simétrica como el tipo de autenticación.
    • Use la configuración predeterminada para la generación automática de claves de autenticación y para conectar el dispositivo nuevo a su centro.
  4. Seleccione 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 Azure IoT Edge.

Visualización de dispositivos registrados y recuperación de la información de aprovisionamiento

Los dispositivos que usan la autenticación de claves simétricas necesitan sus cadenas de conexión para completar la instalación y el aprovisionamiento del entorno de ejecución de Azure 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 Dispositivo IoT Edge.

Captura de pantalla de cómo ver los dispositivos en Azure Portal, IoT Hub.

Cuando esté listo para configurar el dispositivo, necesitará la cadena de conexión que vincula el dispositivo físico con su identidad en el centro de IoT.

Los dispositivos que se autentican con claves simétricas tienen sus cadenas de conexión disponibles para copiarse en el portal.

  1. En la página Dispositivos del portal, seleccione el identificador de dispositivo IoT Edge en la lista.
  2. Copie el valor de la cadena de conexión primaria o la cadena de conexión secundaria.

Instalación de IoT Edge

En esta sección, preparará la VM o el dispositivo físico Windows para IoT Edge. A continuación, instalará IoT Edge.

Azure IoT Edge utiliza un runtime de contenedor compatible con OCI. Moby, un motor basado en Moby, se incluye en el script de instalación, lo que significa que no hay ningún paso adicional para instalar el motor.

Para instalar el entorno de ejecución de IoT Edge:

  1. Ejecute PowerShell como administrador.

    Use una sesión de AMD64 de PowerShell, no PowerShell (x86). Si no está seguro del tipo de sesión que usa, ejecute el comando siguiente:

    (Get-Process -Id $PID).StartInfo.EnvironmentVariables["PROCESSOR_ARCHITECTURE"]
    
  2. Ejecute el comando Deploy-IoTEdge, que realiza las tareas siguientes:

    • Comprueba que la máquina Windows se encuentra en una versión compatible.
    • Activa la característica de los contenedores.
    • Descarga el motor de Moby y el entorno de ejecución de IoT Edge.
    . {Invoke-WebRequest -useb https://aka.ms/iotedge-win} | Invoke-Expression; `
    Deploy-IoTEdge
    
  3. Si se le solicita, reinicie el dispositivo.

Al instalar IoT Edge en un dispositivo, puede usar parámetros adicionales para modificar el proceso, entre los que se incluyen los siguientes:

  • Dirigir el tráfico para que pase por un servidor proxy
  • Haga que el instalador apunte a un directorio local, en el caso de una instalación sin conexión.

Para más información sobre estos parámetros adicionales, consulte Scripts de PowerShell para IoT Edge con contenedores Windows.

Aprovisionamiento del dispositivo con su identidad de nube

Ahora que el motor del contenedor y el entorno de ejecución de IoT Edge están instalados en el dispositivo, está preparado para el paso siguiente, que consiste en configurar el dispositivo con su información de identidad de nube y autenticación.

  1. En el dispositivo IoT Edge, ejecute PowerShell como administrador.

  2. Use el comando Initialize-IoTEdge para configurar el entorno de ejecución de IoT Edge en la máquina. El comportamiento predeterminado del comando es el aprovisionamiento manual con contenedores de Windows.

    . {Invoke-WebRequest -useb https://aka.ms/iotedge-win} | Invoke-Expression; `
    Initialize-IoTEdge -ManualConnectionString -ContainerOs Windows
    
    • Si ha descargado el script IoTEdgeSecurityDaemon.ps1 en el dispositivo para la instalación sin conexión o de una versión específica, asegúrese de hacer referencia a la copia local del script.

      . <path>/IoTEdgeSecurityDaemon.ps1
      Initialize-IoTEdge -ManualConnectionString -ContainerOs Windows
      
  3. Cuando se le pida, especifique la cadena de conexión del dispositivo que ha recuperado en la sección anterior. La cadena de conexión del dispositivo asocia el dispositivo físico a un identificador de dispositivo de IoT Hub y proporciona información de autenticación.

    La cadena de conexión del dispositivo adopta el formato siguiente y no debe incluir comillas: HostName={IoT_hub_name}.azure-devices.net;DeviceId={device_name};SharedAccessKey={key}

Al aprovisionar un dispositivo manualmente, puede usar parámetros adicionales para modificar el proceso, lo que incluye:

  • Dirigir el tráfico para que pase por un servidor proxy
  • Declarar una imagen de contenedor de edgeAgent específica y proporcionar las credenciales si se encuentra en un registro privado

Para más información sobre estos parámetros adicionales, consulte Scripts de PowerShell para IoT Edge con contenedores Windows.

Comprobación de configuración correcta

Compruebe que el runtime se ha instalado y configurado correctamente en el dispositivo de IoT Edge.

Compruebe el estado del servicio IoT Edge.

Get-Service iotedge

Examine los registros del servicio.

. {Invoke-WebRequest -useb aka.ms/iotedge-win} | Invoke-Expression; Get-IoTEdgeLog

Enumere los módulos en ejecución.

iotedge list

Instalación sin conexión o de una versión específica (opcional)

Los pasos de esta sección corresponden a escenarios que no se tratan en los pasos de instalación estándar. Estos pueden incluir lo siguiente:

  • Instalación de IoT Edge sin conexión
  • Instalación de una versión candidata para lanzamiento
  • Instalación de una versión que no sea la más reciente

Durante la instalación, se descargan tres archivos:

  • Un script de PowerShell, que contiene las instrucciones de instalación.
  • Un archivo .cab de Microsoft Azure IoT Edge, que contiene el demonio de seguridad de IoT Edge (iotedged), el motor del contenedor Moby y la CLI de Moby.
  • El instalador del paquete redistribuible de Visual C++ (VC Runtime).

Si el dispositivo va a estar sin conexión durante la instalación o si desea instalar una versión específica de IoT Edge, puede descargar anticipadamente estos archivos en el dispositivo. En el momento de la instalación, haga que el script de instalación apunte hacia el directorio que contiene los archivos descargados. El instalador comprueba en primer lugar ese directorio y luego descarga solo los componentes que no se encuentren en él. Si los archivos están disponibles sin conexión, la instalación se puede realizar sin conexión a Internet.

  1. Para obtener los archivos de instalación de IoT Edge más recientes, junto con las versiones anteriores, vea las versiones de Azure IoT Edge.

  2. Busque la versión que desea instalar y descargue los siguientes archivos de la sección Recursos de las notas de la versión en el dispositivo IoT:

    • IoTEdgeSecurityDaemon.ps1
    • Microsoft-Azure-IoTEdge-amd64.cab del canal de versión 1.1.

    Es importante usar el script de PowerShell de la misma versión que el archivo .cab que se usa, porque la funcionalidad cambia para admitir las características de cada versión.

  3. Si el archivo .cab que descargó tiene un sufijo de arquitectura, cambie el nombre del archivo a Microsoft-Azure-IoTEdge.cab.

  4. Opcionalmente, descargue un instalador para Visual C++ Redistributable. Por ejemplo, el script de PowerShell usa esta versión: vc_redist.x64.exe. Guarde el instalador en la misma carpeta del dispositivo IoT que los archivos IoT Edge.

  5. Para instalar con componentes sin conexión, use el operador punto en la copia local del script de PowerShell.

  6. Ejecute el comando Deploy-IoTEdge con el parámetro -OfflineInstallationPath. Especifique la ruta de acceso absoluta al directorio de archivos. Por ejemplo,

    . path_to_powershell_module_here\IoTEdgeSecurityDaemon.ps1
    Deploy-IoTEdge -OfflineInstallationPath path_to_file_directory_here
    

    El comando de implementación usará cualquier componente que se encuentre en el directorio de archivos local proporcionado. Si falta el archivo .cab o el instalador de Visual C++, intentará descargarlos.

Desinstalación de IoT Edge

Si quiere quitar la instalación de IoT Edge del dispositivo Windows, use el comando Uninstall-IoTEdge en una ventana administrativa de PowerShell. Este comando quita el entorno de ejecución de IoT Edge, junto con la configuración existente y los datos de motor de Moby.

. {Invoke-WebRequest -useb aka.ms/iotedge-win} | Invoke-Expression; `
Uninstall-IoTEdge

Para más información acerca de las opciones de desinstalación, use el comando Get-Help Uninstall-IoTEdge -full.

Pasos siguientes

Siga implementando módulos de IoT Edge para información sobre cómo implementar módulos en el dispositivo.