Configuración de Azure IoT Edge para Azure Sphere
Importante
Esta es la documentación de Azure Sphere (heredado). Azure Sphere (heredado) se retira el 27 de septiembre de 2027 y los usuarios deben migrar a Azure Sphere (integrado) en este momento. Use el selector de versiones situado encima de la TOC para ver la documentación de Azure Sphere (integrado).
Azure IoT Edge proporciona una capa de filtrado y procesamiento de datos entre un dispositivo de bajada, como Azure Sphere y Azure IoT Hub. Considere la posibilidad de usar Azure IoT Edge si el dispositivo de Azure Sphere genera una cantidad considerable de datos o datos que requieren procesamiento posterior.
En este tema se documentan los pasos para configurar un dispositivo De Azure IoT Edge con Azure Sphere. Azure Sphere admite las versiones 1.1 y 1.2 de Azure IoT Edge; En las instrucciones se indican diferencias significativas. Las diferencias principales son:
- El nombre del paquete cambió de
iotedge
aaziot-edge
. - El archivo de configuración predeterminado tiene un nombre y una ubicación nuevos. En Azure IoT Edge 1.1, el archivo de configuración era /etc/iotedge/config.yaml. En Azure IoT Edge 1.2, el archivo de configuración es /etc/aziot/config.toml.
- Azure IoT Edge 1.2 requiere un nombre de dominio completo (FQDN) accesible a través de un servidor DNS en la red.
Una vez completadas las tareas de este tema, el dispositivo de Azure Sphere se configurará para enviar datos a una instancia de Azure IoT Hub a través de un dispositivo De Azure IoT Edge que actúa como puerta de enlace transparente. Puede agregar más filtrado y procesamiento de datos con un módulo en el dispositivo Azure IoT Edge siguiendo la guía del módulo de Azure IoT Edge.
Antes de empezar
En los pasos de este tema se supone que:
- El dispositivo de Azure Sphere está conectado al equipo mediante USB.
- Tiene una suscripción de Azure.
- Ha creado una instancia de Azure IoT Hub y aprovisionado manualmente un dispositivo. Tenga en cuenta que deberá usar el certificado de entidad de certificación de inquilino para IoT Hub más adelante en el procedimiento (paso 6).
- Ha creado un grupo de recursos y todos los recursos relacionados con los servicios de Azure IoT Hub e IoT Edge deben pertenecer a este grupo de recursos.
Importante
Aunque puede crear una suscripción de Azure sin ningún cargo, el proceso de registro requiere que escriba un número de tarjeta de crédito. Azure proporciona varios niveles de servicio de suscripción. De forma predeterminada, el nivel Estándar, que requiere un cargo mensual de servicio, se selecciona al crear una instancia de Azure IoT Hub. Para evitar ese cargo mensual, seleccione el nivel Gratis. El nivel Gratis incluye los servicios necesarios para usar el dispositivo con una instancia de Azure IoT Hub, incluido el dispositivo gemelo. Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
Información general
La configuración de un dispositivo Azure IoT Edge y la configuración para trabajar con un dispositivo de Azure Sphere requiere un proceso de varios pasos y debe planear aproximadamente 8 horas para trabajar con los pasos, especialmente si no está familiarizado con Azure IoT Edge. Si esta es la primera vez que trabaja con Azure IoT Edge, siga las instrucciones de inicio rápido de cada sección para configurar y configurar un dispositivo IoT Edge que se ejecute en una máquina virtual Linux.
Estos pasos deben completarse solo una vez por inquilino de Azure Sphere y el dispositivo Azure IoT Edge; Sin embargo, cada dispositivo de Azure Sphere debe configurarse manualmente en Azure IoT Hub y el dispositivo Azure IoT Edge debe establecerse como elemento primario del dispositivo de Azure Sphere.
Los pasos de instalación se pueden dividir en tres agrupaciones lógicas:
Creación y configuración del dispositivo IoT Edge como puerta de enlace transparente
- Paso 1. Cree un dispositivo de Azure IoT Edge.
- Paso 2. Configure el dispositivo de puerta de enlace de Azure IoT Edge como servidor.
- Paso 3. Abra los puertos de dispositivo de puerta de enlace de Azure IoT Edge para la comunicación.
- Paso 4. Actualice el nombre de host de la puerta de enlace en config.toml (Azure IoT Edge versión 1.2) o config.yaml (Versión 1.1 de Azure IoT Edge).
Configuración del dispositivo de Azure Sphere en Azure IoT Hub
- Paso 5. Establezca el dispositivo Azure IoT Edge como elemento primario del dispositivo de Azure Sphere.
Establecimiento de una conexión de confianza entre el dispositivo de Azure Sphere y el dispositivo IoT Edge
- Paso 6. Proporcione el certificado de entidad de certificación de inquilino del dispositivo de Azure Sphere al dispositivo Azure IoT Edge.
- Paso 7. Proporcione el certificado de entidad de certificación raíz del dispositivo Azure IoT Edge al dispositivo de Azure Sphere.
Paso 1. Crear un dispositivo Azure IoT Edge
Debe configurar un dispositivo De Azure IoT Edge y registrarlo en Azure IoT Hub, si aún no lo ha hecho.
Puede usar Device Provisioning Service (DPS) para aprovisionar el dispositivo Azure IoT Edge. Sin embargo, no puede usar DPS para aprovisionar el dispositivo de Azure Sphere. No se admite el aprovisionamiento automático de dispositivos de bajada del dispositivo De Azure IoT Edge con DPS de Azure IoT Hub.
Puede seguir los pasos del inicio rápido de IoT Edge para configurar un dispositivo Azure IoT Edge que se ejecuta en una máquina virtual Linux o un dispositivo Windows y registrarlo en Azure IoT Hub.
Siga los pasos del inicio rápido para:
- Registre un dispositivo Azure IoT Edge en la instancia de Azure IoT Hub. No cree un centro de IoT en este paso, simplemente registre el dispositivo Azure IoT Edge en el centro de IoT que ya ha creado.
- Instale e inicie el entorno de ejecución de Azure IoT Edge en el dispositivo Azure IoT Edge.
Nota:
En el inicio rápido de IoT Edge, detenga antes de implementar un módulo.
Paso 2. Configuración del dispositivo de puerta de enlace de IoT Edge como servidor
Siga las instrucciones para configurar un dispositivo de Azure IoT Edge para que actúe como puerta de enlace transparente (Azure IoT Edge 1.2) o Azure IoT Edge 1.1, pero se detenga cuando llegue a la sección "Abrir puertos en el dispositivo de puerta de enlace". Aunque estas instrucciones le indican que copie los archivos de certificado en el dispositivo IoT Edge, no copie los archivos en la máquina virtual hasta el paso 8 de este procedimiento.
Como parte de los pasos completados para configurar la puerta de enlace de dispositivos como servidor, ya tendrá lo siguiente:
- Ha configurado los certificados de dispositivo de Azure IoT Edge.
- Implementó el módulo del centro de Azure IoT Edge.
- Enrutamiento configurado de mensajes a través de Azure IoT Edge.
Además, como parte de estos pasos, habrá creado estos certificados:
- Certificado de entidad de certificación raíz:
certs/azure-iot-test-only.root.ca.cert.pem
- Certificado de entidad de certificación de dispositivo y clave privada (se usa para registrar el dispositivo IoT Edge en IoT Hub):
certs/iot-edge-device-identity-<cert-name>-full-chain.cert.pem
private/iot-edge-device-identity-<cert-name>.key.pem
- Certificado de entidad de certificación de IoT Edge y clave privada (que se va a copiar en un dispositivo IoT Edge y al que se hace referencia en su archivo de configuración):
certs/iot-edge-device-ca-<cert-name>-full-chain.cert.pem
private/iot-edge-device-ca-<cert-name>.key.pem
Si sigue el inicio rápido, use las instrucciones de Linux para configurar los certificados de demostración si la máquina en la que está generando los certificados es un equipo basado en Linux. Use las instrucciones de Windows para generar los certificados de demostración si la máquina en la que está generando los certificados es un equipo basado en Windows. Consulte la sección para copiar certificados raíz en una máquina virtual Linux o en un equipo Windows local.
El certificado de entidad de certificación raíz de Azure IoT Edge se modificará en el paso 7, pero necesitará el certificado original en el paso 8. Mantenga una copia del certificado original para poder reutilizarlo.
Nota:
Al actualizar la sección de certificados del archivo config.toml (Azure IoT Edge 1.2) o config.yaml (Azure IoT Edge 1.1), asegúrese de que la certificates:
línea del archivo config.toml (Azure IoT Edge 1.2) o config.yaml (Azure IoT Edge 1.1) no tenga ningún espacio en blanco anterior y que cada uno de los certificados anidados esté insertado en dos espacios.
Una vez actualizado el archivo, compruebe que el módulo edgehub se ejecuta en el dispositivo Azure IoT Edge:
sudo iotedge list
Para más información, consulte Cómo se puede usar un dispositivo IoT Edge como puerta de enlace (Azure IoT Edge 1.2) o Azure IoT Edge 1.1.
Si usa certificados de prueba, detenga antes de generar el certificado de dispositivo de bajada, tal como se documenta en Creación de certificados de dispositivo de bajada (Azure IoT Edge 1.2) o Azure IoT Edge 1.1.
Paso 3. Apertura de puertos de dispositivo de puerta de enlace de Azure IoT Edge para la comunicación
Los dispositivos de puerta de enlace deben poder recibir mensajes de sus dispositivos de bajada. Para que un escenario de puerta de enlace funcione, al menos uno de los protocolos admitidos de IoT Hub debe estar abierto para el tráfico entrante desde dispositivos de bajada.
Azure Sphere usa el protocolo MQTT. Este protocolo usa el puerto 8883.
Para más información, consulte Apertura de puertos en el dispositivo de puerta de enlace (Azure IoT Edge 1.2) o Azure IoT Edge 1.1.
Siga estos pasos para abrir el puerto 8883 en una máquina virtual Windows después de configurar un dispositivo Edge en el inicio rápido:
- Si es necesario, inicie sesión en Azure Portal con su cuenta de Azure.
- Vaya a la máquina virtual que creó en la sección Paso 1: Creación de un dispositivo Azure IoT Edge.
- En la sección Configuración de la izquierda, seleccione Redes y, después, Agregar regla de puerto de entrada.
- En la hoja Agregar regla de puerto de entrada, en Intervalos de puertos de destino, cambie el valor a 8883.
- En Protocolo, seleccione TCP.
- En Nombre, cambie el valor a MQTT.
- Deje todas las demás configuraciones como valor predeterminado y, a continuación, seleccione Agregar.
Siga estos pasos para abrir el puerto 8883 en una máquina virtual Linux después de configurar un dispositivo Azure IoT Edge en el inicio rápido:
Ejecute el siguiente comando para comprobar si el puerto de MQTT está abierto:
sudo netstat -lptu
Si es necesario, use el siguiente comando para abrir el puerto:
sudo ufw allow 8883
Esto definirá una regla de seguridad de entrada para permitir la comunicación del protocolo MQTT a la puerta de enlace de Azure IoT Edge.
Paso 4. Actualización del nombre de host de la puerta de enlace
En este paso se usan procedimientos diferentes en función de la versión de Azure IoT Edge que use: Azure IoT Edge 1.2 o Azure IoT Edge 1.1.
Azure IoT Edge 1.2: actualización del nombre de host de la puerta de enlace en config.toml
El entorno de ejecución de Azure IoT Edge admite nombres de host que tienen menos de 64 caracteres. Normalmente, las máquinas físicas no tienen nombres de host largos, pero si usa una máquina virtual como dispositivo De Azure IoT Edge, como el ejemplo del inicio rápido, debe configurar manualmente el nombre de host.
Para solucionar problemas de un nombre de host no válido, consulte soluciones de errores comunes.
Siga estos pasos para configurar el nombre de host del dispositivo IoT Edge de Azure después de configurar el puerto MQTT en el inicio rápido:
Busque el nombre de dominio completo (FQDN) de la puerta de enlace de IoT Edge; para ello, vaya al dispositivo IoT Edge (VM Linux) en Azure Portal y copie el valor del nombre DNS en la página de información general.
Si es necesario, inicie sesión en el dispositivo Azure IoT Edge.
Abra el archivo config.toml en un editor de texto.
/etc/aziot/config.toml
Pegue el FQDN en la sección nombre de host de config.toml. Asegúrese de que el nombre está escrito en minúsculas.
hostname: "<iotedge_machinename>.<mydomain>"
Nota:
Por diseño con Azure IoT Edge v1.2 y versiones posteriores, el nombre de host DEBE ser un nombre FQDN (ya no se permite una dirección IP, como en la versión 1.1); por lo tanto, un servidor DNS con el registro A adecuado en la misma red es obligatorio.
Reinicie el demonio
iotedge
.sudo systemctl restart iotedge
Si ve errores (texto en color con el prefijo "[ERROR]") en el estado, examine los registros del demonio para obtener información detallada del error.
sudo journalctl -u iotedge --no-pager --no-full
Para evitar advertencias, configure la configuración dns de los módulos en el dispositivo Azure IoT Edge para incluir un archivo de configuración en /etc/docker/daemon.json, por ejemplo:
{ "dns": ["<IP address of your DNS server>"] }
Azure IoT Edge 1.1: actualización del nombre de host de la puerta de enlace en config.yaml
El entorno de ejecución de Azure IoT Edge admite nombres de host que tienen menos de 64 caracteres. Normalmente, las máquinas físicas no tienen nombres de host largos, pero si usa una máquina virtual como dispositivo De Azure IoT Edge, como el ejemplo del inicio rápido, debe configurar manualmente el nombre de host.
Para solucionar problemas de un nombre de host no válido, consulte soluciones de errores comunes.
Siga estos pasos para configurar el nombre de host del dispositivo IoT Edge de Azure después de configurar el puerto MQTT en el inicio rápido:
En Azure Portal, navegue a la máquina virtual. Copie el valor del nombre DNS (FQDN del equipo) en la sección Información general .
Si es necesario, inicie sesión en el dispositivo Azure IoT Edge.
Abra el archivo config.yaml en un editor de texto.
/etc/iotedge/config.yaml
Pegue el FQDN en la sección nombre de host de config.yaml. Asegúrese de que el nombre está escrito en minúsculas.
`hostname: "<machinename>.<region>.cloudapp.azure.com"`
Nota:
Es posible que tenga que usar el nombre de la máquina completa para el nombre de host (ya sea la dirección IP o el nombre de host real) si una resolución DNS está en la red, ya que Azure Sphere no admite netbios.
Reinicie el demonio
iotedge
.sudo systemctl restart iotedge
Si ve errores (texto en color con el prefijo "[ERROR]") en el estado, examine los registros del demonio para obtener información detallada del error.
sudo journalctl -u iotedge --no-pager --no-full
Para evitar advertencias, configure la configuración dns de los módulos en el dispositivo Azure IoT Edge para incluir un archivo de configuración en /etc/docker/daemon.json, por ejemplo:
{ "dns": ["<IP address of your DNS server>"] }
Paso 5. Establecimiento del dispositivo Azure IoT Edge como elemento primario del dispositivo de Azure Sphere
Siga estos pasos para establecer el dispositivo Azure IoT Edge como elemento primario del dispositivo de Azure Sphere:
- Vaya al dispositivo de Azure Sphere que se aprovisionó manualmente anteriormente.
- Seleccione Id. de dispositivo.
- Seleccione el icono de engranaje en Sin dispositivo primario.
- Seleccione el dispositivo Azure IoT Edge que desea establecer como primario.
- Seleccione Aceptar y Guardar.
El dispositivo Azure IoT Edge ahora se convierte en el elemento primario del dispositivo de Azure Sphere.
Paso 6. Proporcionar el certificado de entidad de certificación de inquilino del dispositivo de Azure Sphere al dispositivo IoT Edge
Para comprobar los certificados de dispositivo de Azure Sphere, el dispositivo Azure IoT Edge debe tener su propia copia de la ENTIDAD de certificación del inquilino.
Descargue el certificado de ENTIDAD de certificación del inquilino si aún no lo ha hecho. Nota: Ya debería haber completado esto como parte de la configuración de Azure IoT Hub.
En el símbolo del sistema, inicie sesión con el inicio de sesión de Azure Sphere:
azsphere login
Descargue el certificado de ENTIDAD de certificación para el inquilino de Azure Sphere. Este comando descarga el certificado en un archivo denominado CAcertificate.cer en el directorio de trabajo actual. Asegúrese de descargar el archivo en un directorio en el que tenga permiso de escritura o se producirá un error en la operación de descarga. El archivo de salida debe tener una extensión .cer.
azsphere ca-certificate download --destination CAcertificate.cer
Convierta el certificado de ENTIDAD de certificación de inquilino en formato PEM. Las instrucciones de ejemplo para convertir el formato en una máquina Windows son las siguientes:
- Busque la ruta de acceso del certificado en el equipo y haga doble clic en el certificado para abrirlo.
- Abra la pestaña Detalles y seleccione Copiar en archivo.
- En el Asistente para exportación de certificados , seleccione Siguiente.
- Seleccione el formato X.509 (CER) codificado en Base 64 y, a continuación, seleccione Siguiente.
- Escriba el nombre de archivo del certificado que se va a exportar y, a continuación, seleccione Siguiente.
- Seleccione Finalizar para completar el asistente.
- Cambie el nombre del archivo de certificado descargado para que tenga la extensión de archivo .pem.
Anexe el certificado de inquilino al certificado raíz de Azure IoT Edge. Recuerde que ha creado los certificados de Azure IoT Edge en el paso 2.
- Si es necesario, inicie sesión en el dispositivo Azure IoT Edge.
- Busque la ruta de acceso del certificado de entidad de certificación raíz del dispositivo IoT Edge y ábralo en un editor de texto. Si ha seguido el inicio rápido, ha usado los scripts proporcionados en el repositorio git de Azure IoT Edge para crear certificados de demostración, el certificado de ca raíz se denomina azure-iot-test-only.root.ca.cert.pem.
- Abra el certificado de entidad de certificación de inquilino de Azure Sphere (en formato PEM) en un editor de texto. Copie el contenido y péguelo al final del certificado de entidad de certificación raíz de IoT Edge.
- Guarde los cambios realizados en el certificado de entidad de certificación raíz de Azure IoT Edge y cierre el archivo.
- Reinicie el dispositivo Azure IoT Edge. Para un dispositivo Linux de Azure IoT Edge, ejecute:
sudo systemctl restart iotedge
. - Compruebe que los módulos se ejecutan en el dispositivo Azure IoT Edge. Para un dispositivo Linux de Azure IoT Edge, ejecute:
sudo iotedge list
.
Paso 7. Proporcionar el certificado de entidad de certificación raíz del dispositivo Azure IoT Edge al dispositivo de Azure Sphere
Para comprobar los certificados de dispositivo de Azure IoT Edge, el dispositivo de Azure Sphere (el dispositivo de bajada) debe tener su propia copia del certificado de entidad de certificación raíz del dispositivo IoT Edge de Azure, que configuró en el paso 2.
Para más información, consulte Conexión de un dispositivo de bajada a una puerta de enlace de Azure IoT Edge.
Busque el certificado raíz del dispositivo De Azure IoT Edge original.
- Recuerde que el certificado raíz del dispositivo De Azure IoT Edge original es el que creó en el paso 2.
- Si ha seguido el inicio rápido y, a continuación, ha usado los scripts proporcionados en el repositorio git de IoT Edge para crear certificados de demostración, el certificado de ca raíz se denomina azure-iot-test-only.root.ca.cert.pem.
Copie el certificado raíz de Azure IoT Edge en el dispositivo de Azure Sphere agregándolo al paquete de aplicación.
- Para obtener pasos detallados, consulte Creación de paquetes de imagen.
- Consulte la sección para copiar certificados raíz en una máquina virtual Linux o en un equipo Windows local.
Paso 8. Copia del certificado raíz de IoT en una máquina remota
Siga estos pasos para copiar el certificado raíz de Azure IoT Edge en una máquina virtual Linux remota o en una máquina Windows local:
Puedes instalar la herramienta WinSCP para transferir los archivos. La herramienta proporciona una GUI para que sea más fácil de usar que un enfoque de línea de comandos.
Para usar la línea de comandos, use la herramienta de línea de comandos SCP (copia segura).
Para transferir un archivo desde una máquina Windows local a una máquina virtual Linux remota, ejecute el siguiente comando en Windows PowerShell:
powershell -Command scp -r <path-to-file-name> <userName@remote-ip>:<path-to-destination-directory>
Sintaxis de ejemplo:
scp C:\Documents\cert.pem AzureUser@edgevmname-west.westus22.cloudapp.azure.com:/home/azureUser/test/
Para transferir un archivo desde una máquina virtual Linux remota a una máquina Windows local, ejecute el siguiente comando en Windows PowerShell:
powershell -Command scp -r <userName@remote-ip>:<path-to-file-name> <path-to-destination-dir>
Sintaxis de ejemplo:
scp azureUser@edgevmname-west.westus22.cloudapp.azure.com:/home/azureUser/test/cert.pem C:\Documents\
Solución de problemas
Si experimenta problemas al ejecutar Azure IoT Edge en su entorno, use estos artículos para solucionar problemas y diagnósticos:
Solución de problemas del dispositivo IoT Edge (Azure IoT Edge 1.2) o Azure IoT Edge 1.1
Problemas comunes y soluciones para Azure IoT Edge (Azure IoT Edge 1.2) o Azure IoT Edge 1.1
Pasos siguientes
- Después de completar los pasos de este tema, puede ejecutar el ejemplo de Azure IoT siguiendo las instrucciones para conectarse mediante Azure IoT Edge.