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.
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.
Los dispositivos IoT Edge envían solicitudes HTTPS para comunicarse con IoT Hub. Si el dispositivo se conecta a una red que usa un servidor proxy, configure el entorno de ejecución de IoT Edge para comunicarse a través del servidor. Los servidores proxy también pueden afectar a los módulos individuales de IoT Edge si realizan solicitudes HTTP o HTTPS que no se enrutan a través del hub de IoT Edge.
En este artículo se explican los cuatro pasos para configurar y administrar un dispositivo IoT Edge detrás de un servidor proxy:
Instalar el entorno de ejecución de IoT Edge en el dispositivo
Los scripts de instalación de IoT Edge extraen paquetes y archivos de Internet, por lo que el dispositivo se comunica a través del servidor proxy para realizar esas solicitudes.
Este paso es un proceso único para configurar el dispositivo IoT Edge cuando lo configure por primera vez. También necesita estas mismas conexiones al actualizar el entorno de ejecución de IoT Edge.
Configura IoT Edge y el entorno de ejecución del contenedor en tu dispositivo
IoT Edge controla las comunicaciones con IoT Hub. El entorno de ejecución del contenedor administra los contenedores y se comunica con los registros de contenedor. Ambos componentes deben hacer las solicitudes web a través del servidor proxy.
Este paso es un proceso único para configurar el dispositivo IoT Edge cuando lo configure por primera vez.
Configure las propiedades del agente de IoT Edge en el archivo de configuración del dispositivo
El demonio de IoT Edge inicia primero el módulo edgeAgent. A continuación, el módulo edgeAgent recupera el manifiesto de implementación de IoT Hub e inicia todos los demás módulos. Configure manualmente las variables de entorno del módulo edgeAgent en el dispositivo para que el agente de IoT Edge realice la conexión inicial a IoT Hub. Una vez establecida la conexión inicial, puede configurar el módulo de edgeAgent de forma remota.
Este paso es un proceso único para configurar el dispositivo IoT Edge cuando lo configure por primera vez.
-
Después de configurar y conectar un dispositivo IoT Edge a IoT Hub a través del servidor proxy, mantenga la conexión en todas las implementaciones futuras de módulos.
Este paso es un proceso continuo que se realiza de forma remota para que, con cada nueva actualización del módulo o la implementación, el dispositivo conserve su capacidad para comunicarse a través del servidor proxy.
Conozca su URL de proxy
Antes de iniciar los pasos de este artículo, conozca la dirección URL del proxy.
Las direcciones URL de proxy usan el siguiente formato: protocol://proxy_host:proxy_port.
El protocolo es HTTP o HTTPS. El daemon de Docker puede usar cualquiera de los protocolos en función de la configuración del registro de contenedores, pero el daemon de IoT Edge y los contenedores de runtime siempre usan HTTP para conectarse al proxy.
El proxy_host es la dirección del servidor proxy. Si el servidor proxy requiere autenticación, proporcione sus credenciales como parte del host proxy en el formato siguiente: user:password@proxy_host.
El proxy_port es el puerto de red donde el proxy responde al tráfico.
Instalación de IoT Edge a través de un proxy
Tanto si el dispositivo IoT Edge se ejecuta en Windows como en Linux, acceda a los paquetes de instalación a través del servidor proxy. En función del sistema operativo, siga los pasos para instalar el entorno de ejecución de IoT Edge a través de un servidor proxy.
Dispositivos Linux
Si va a instalar el entorno de ejecución de IoT Edge en un dispositivo Linux, configure el administrador de paquetes para usar el servidor proxy para acceder al paquete de instalación. Por ejemplo, configure apt-get para usar un http-proxy. Después de configurar el administrador de paquetes, siga las instrucciones de Install Azure IoT Edge runtime.
Dispositivos Windows que usan IoT Edge para Linux en Windows
Si va a instalar el entorno de ejecución de IoT Edge mediante IoT Edge para Linux en Windows, el entorno de ejecución de IoT Edge se instala de forma predeterminada en la máquina virtual Linux. No es necesario instalar ni actualizar ningún otro paso.
Configuración de IoT Edge y Moby
IoT Edge utiliza dos demonios que se ejecutan en el dispositivo IoT Edge. El demonio Moby extrae imágenes de contenedor de registros de contenedor. El servicio IoT Edge se comunica con el IoT Hub.
Configure los demonios Moby y IoT Edge para usar el servidor proxy para el funcionamiento continuo del dispositivo. Realice este paso en el dispositivo IoT Edge durante la instalación inicial.
Demonio Moby
Dado que Moby se basa en Docker, consulte la documentación de Docker para configurar el daemon de Moby con variables de entorno. La mayoría de los registros de contenedor, incluidos DockerHub y Azure Container Registries, admiten solicitudes HTTPS, por lo que establecen el parámetro HTTPS_PROXY. Si va a extraer imágenes de un registro que no admite la seguridad de la capa de transporte (TLS), debe establecer el parámetro HTTP_PROXY.
Seleccione el artículo que se aplica al sistema operativo del dispositivo IoT Edge:
- Configuración del demonio de Docker en Linux En los dispositivos Linux, el demonio Moby sigue llamándose Docker.
daemon de IoT Edge
El demonio IoT Edge es similar al demonio Moby. Utilice los pasos siguientes para establecer una variable de entorno para el servicio según su sistema operativo.
El daemon de IoT Edge siempre usa HTTPS para enviar solicitudes a IoT Hub.
Linux
En la terminal, abra un editor para configurar el servicio de IoT Edge.
sudo systemctl edit aziot-edged
Escriba el texto siguiente, y reemplace la <dirección URL del proxy> por la dirección del servidor proxy y el puerto. A continuación, guarde y salga.
[Service]
Environment="https_proxy=<proxy URL>"
A partir de la versión 1.2, IoT Edge usa el servicio de identidad de IoT para controlar el aprovisionamiento de dispositivos con IoT Hub o IoT Hub Device Provisioning Service. Abra un editor en el terminal para configurar el demonio del servicio de identidad de IoT.
sudo systemctl edit aziot-identityd
Escriba el texto siguiente, y reemplace la <dirección URL del proxy> por la dirección del servidor proxy y el puerto. A continuación, guarde y salga.
[Service]
Environment="https_proxy=<proxy URL>"
Actualice el administrador de servicios para que incluya las nuevas configuraciones.
sudo systemctl daemon-reload
Reinicie los servicios del sistema IoT Edge para aplicar los cambios a ambos demonios.
sudo iotedge system restart
Comprueba que se encuentran las variables de entorno y la nueva configuración.
systemctl show --property=Environment aziot-edged
systemctl show --property=Environment aziot-identityd
Windows utilizando IoT Edge para Linux en Windows
Inicie sesión en la máquina virtual de IoT Edge para Linux en Windows.
Connect-EflowVm
Siga los pasos indicados en la sección dedicada a Linux en este artículo para configurar el demonio IoT Edge.
Configuración del agente de IoT Edge
El agente de IoT Edge es el primer módulo para iniciarse en cualquier dispositivo IoT Edge. Este módulo se inicia por primera vez en función de la información del archivo de configuración de IoT Edge. A continuación, el agente de IoT Edge se conecta a IoT Hub para recuperar manifiestos de implementación. El manifiesto declara qué otros módulos debe implementar el dispositivo.
Este paso se realiza una vez en el dispositivo IoT Edge durante la configuración inicial del dispositivo.
Abra el archivo de configuración en el dispositivo IoT Edge:
/etc/aziot/config.toml. Necesitas privilegios de administración para acceder al archivo de configuración. En los sistemas Linux, utilice el comandosudoantes de abrir el archivo en el editor de texto que prefiera.En el archivo de configuración, busque la sección
[agent], que contiene toda la información de configuración para el módulo edgeAgent que se va a usar en el inicio. Compruebe que la[agent]sección no tiene comentarios. Si falta la sección[agent], agrégala aconfig.toml. La definición del agente de IoT Edge incluye una subsección[agent.env], donde puede agregar variables de entorno.Agregue el parámetro https_proxy a la sección variables de entorno y establezca la dirección URL del proxy como su valor.
[agent] name = "edgeAgent" type = "docker" [agent.config] image = "mcr.microsoft.com/azureiotedge-agent:1.5" [agent.env] # RuntimeLogLevel = "debug" # UpstreamProtocol = "AmqpWs" https_proxy = "<proxy URL>"El entorno de ejecución de IoT Edge usa AMQP de forma predeterminada para comunicarse con IoT Hub. Algunos servidores proxy bloquean los puertos AMQP. Si es así, también debe configurar edgeAgent para que use AMQP sobre WebSocket. Quite el comentario del parámetro
UpstreamProtocol.[agent.config] image = "mcr.microsoft.com/azureiotedge-agent:1.5" [agent.env] # RuntimeLogLevel = "debug" UpstreamProtocol = "AmqpWs" https_proxy = "<proxy URL>"Guarde los cambios y cierre el editor. Aplique los cambios.
sudo iotedge config applyCompruebe que la configuración del proxy se aplica mediante
docker inspect edgeAgenten laEnvsección . De no ser así, debes volver a crear el contenedor.sudo docker rm -f edgeAgentEl tiempo de ejecución de IoT Edge recrea
edgeAgenten un minuto. Cuando el contenedor deedgeAgentvuelva a ejecutarse, usa el comandodocker inspect edgeAgentpara comprobar que la configuración del proxy coincide con el archivo de configuración.
Configuración de manifiestos de implementación
Después de configurar el dispositivo IoT Edge para que funcione con el servidor proxy, declare la variable de entorno HTTPS_PROXY en los manifiestos de implementación futuros. Puede editar manifiestos de implementación mediante el asistente del portal de Azure o editando un archivo JSON del manifiesto de implementación.
Configure siempre los dos módulos en tiempo de ejecución, edgeAgent y edgeHub, para comunicarse a través del servidor proxy para mantener una conexión con IoT Hub. Si quita la información de proxy del módulo edgeAgent, la única manera de restablecer la conexión es editar el archivo de configuración en el dispositivo, como se describe en la sección anterior.
Además de los módulos edgeAgent y edgeHub, es posible que otros módulos necesiten la configuración del proxy. Los módulos que acceden a recursos Azure además de IoT Hub, como Blob Storage, deben especificar la variable HTTPS_PROXY en el archivo de manifiesto de implementación.
Este procedimiento se aplica durante toda la vida del dispositivo IoT Edge.
portal de Azure
Al usar el asistente Set modules para crear implementaciones para dispositivos IoT Edge, cada módulo tiene una sección Environment Variables donde puede configurar conexiones de servidor proxy.
Para configurar el agente de IoT Edge y los módulos del centro de IoT Edge, seleccione Configuración de ejecución en el primer paso del asistente.
Agregue la variable de entorno https_proxy tanto al agente de IoT Edge como a las definiciones de configuración de entorno de ejecución de los módulos del hub de IoT Edge. Si incluye la variable de entorno UpstreamProtocol en el archivo de configuración del dispositivo IoT Edge, agréguela también a la definición del módulo del agente de IoT Edge.
Todos los demás módulos que agregue a un manifiesto de implementación seguirán el mismo patrón. Seleccione Aplicar para guardar los cambios.
Archivos JSON del manifiesto de implementación
Si crea implementaciones para dispositivos IoT Edge mediante las plantillas de Visual Studio Code o mediante la creación manual de archivos JSON, puede agregar las variables de entorno directamente a cada definición de módulo. Si no los agréguelos en el portal de Azure, agréguelos aquí al archivo de manifiesto JSON. Reemplace <proxy URL> con su valor.
Use el siguiente formato JSON:
"env": {
"https_proxy": {
"value": "<proxy URL>"
}
}
Con las variables de entorno incluidas, la definición del módulo es similar al ejemplo de edgeHub siguiente:
"edgeHub": {
"type": "docker",
"settings": {
"image": "mcr.microsoft.com/azureiotedge-hub:1.5",
"createOptions": "{}"
},
"env": {
"https_proxy": {
"value": "http://proxy.example.com:3128"
}
},
"status": "running",
"restartPolicy": "always"
}
Si incluyó la variable de entorno UpstreamProtocol en el archivo config.toml del dispositivo IoT Edge, agréguelo también a la definición del módulo del agente de IoT Edge.
"env": {
"https_proxy": {
"value": "<proxy URL>"
},
"UpstreamProtocol": {
"value": "AmqpWs"
}
}
Trabajar con servidores proxy que inspeccionan el tráfico
Algunos servidores proxy, como Zscaler, pueden inspeccionar el tráfico cifrado con TLS. Durante la inspección del tráfico TLS, el certificado devuelto por el proxy no es el certificado del servidor de destino, sino que es el certificado firmado por el propio certificado raíz del proxy. De forma predeterminada, los módulos de IoT Edge (incluidos edgeAgent y edgeHub) no confían en el certificado de este proxy y se produce un error en el protocolo de enlace TLS.
Para corregir el error de enlace, configure tanto el sistema operativo como los módulos IoT Edge para confiar en el certificado raíz del proxy siguiendo estos pasos.
Configure el certificado proxy en el almacén raíz de certificados de confianza de tu sistema operativo host. Para obtener más información sobre cómo instalar un certificado raíz, consulte Instalación de una entidad de certificación raíz en el almacén de certificados de sistema operativo.
Configure el dispositivo IoT Edge para comunicarse a través de un servidor proxy haciendo referencia al certificado del conjunto de confianza. Para obtener más información sobre cómo configurar el conjunto de confianza, consulte Administrar la CA raíz de confianza (conjunto de confianza).
Para configurar la inspección de tráfico mediante proxy para contenedores no administrados por IoT Edge, póngase en contacto con el proveedor del proxy.
Nombres de dominio completos (FQDN) de los destinos con los que se comunica IoT Edge.
Si el firewall del proxy requiere agregar todos los FQDNs a su lista de permitidos para la conectividad a Internet, revise la lista de 'Permitir conexiones desde dispositivos IoT Edge' para determinar qué FQDNs agregar.
Pasos siguientes
Obtenga información sobre los roles de IoT Edge runtime.
Solucione los errores de instalación y configuración en Problemas comunes y soluciones para Azure IoT Edge.