Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Configurar el software AWS IoT Greengrass principal
El software AWS IoT Greengrass Core ofrece opciones que puede utilizar para configurar el software. Puede crear implementaciones para configurar el software AWS IoT Greengrass principal en cada dispositivo principal.
Temas
- Implemente el componente núcleo de Greengrass
- Configurar el núcleo de Greengrass como un servicio del sistema
- Controle la asignación de memoria con opciones JVM
- Configure el usuario que ejecuta los componentes
- Configure los límites de recursos del sistema para los componentes
- Realizar la conexión en el puerto 443 o a través de un proxy de red
- Utilice un certificado de dispositivo firmado por una entidad emisora de certificados privada
- Configure los MQTT tiempos de espera y los ajustes de la memoria caché
Implemente el componente núcleo de Greengrass
AWS IoT Greengrass proporciona el software AWS IoT Greengrass Core como un componente que puede implementar en sus dispositivos principales de Greengrass. Puede crear una implementación para aplicar la misma configuración a varios dispositivos principales de Greengrass. Para obtener más información, consulte Núcleo de Greengrass y Actualice el software AWS IoT Greengrass principal (OTA).
Configurar el núcleo de Greengrass como un servicio del sistema
Debe configurar el software AWS IoT Greengrass Core como un servicio del sistema en el sistema de inicio del dispositivo para hacer lo siguiente:
-
Inicie el software AWS IoT Greengrass Core cuando se inicie el dispositivo. Esta es una buena práctica si gestionas grandes flotas de dispositivos.
-
Instala y ejecuta los componentes del complemento. Varios AWS de los componentes proporcionados son componentes de complementos, lo que les permite interactuar directamente con el núcleo de Greengrass. Para obtener más información acerca de los tipos de componentes, consulte Tipos de componentes.
-
Apply over-the-air (OTA) actualiza el software principal del dispositivo AWS IoT Greengrass principal. Para obtener más información, consulte Actualice el software AWS IoT Greengrass principal (OTA).
-
Permita que los componentes reinicien el software AWS IoT Greengrass principal o el dispositivo principal cuando una implementación actualice el componente a una nueva versión o actualice determinados parámetros de configuración. Para obtener más información, consulte el paso del ciclo de vida del arranque.
importante
En los dispositivos principales de Windows, debe configurar el software AWS IoT Greengrass Core como un servicio del sistema.
Temas
Configure el núcleo como un servicio del sistema (Linux)
Los dispositivos Linux admiten diferentes sistemas de inicio, como initd, systemd y SystemV. El --setup-system-service true
argumento se utiliza al instalar el software AWS IoT Greengrass Core para iniciar el núcleo como un servicio del sistema y configurarlo para que se inicie al arrancar el dispositivo. El instalador configura el software AWS IoT Greengrass Core como un servicio del sistema con systemd.
También puede configurar manualmente el núcleo para que se ejecute como un servicio del sistema. En el siguiente ejemplo se muestra un archivo de servicio para systemd.
[Unit] Description=Greengrass Core [Service] Type=simple PIDFile=
/alts/loader.pid RemainAfterExit=no Restart=on-failure RestartSec=10 ExecStart=/bin/sh
/greengrass/v2
/alts/current/distro/bin/loader [Install] WantedBy=multi-user.target
/greengrass/v2
Tras configurar el servicio del sistema, puede ejecutar los siguientes comandos para configurar el inicio del dispositivo al arrancar y para iniciar o detener el software AWS IoT Greengrass principal.
-
Para comprobar el estado del servicio (systemd)
sudo systemctl status greengrass.service
-
Para permitir que el núcleo se inicie al arrancar el dispositivo.
sudo systemctl enable greengrass.service
-
Para impedir que el núcleo se inicie al arrancar el dispositivo.
sudo systemctl disable greengrass.service
-
Para iniciar el software AWS IoT Greengrass Core.
sudo systemctl start greengrass.service
-
Para detener el software AWS IoT Greengrass Core.
sudo systemctl stop greengrass.service
Configure el núcleo como un servicio del sistema (Windows)
El --setup-system-service true
argumento se utiliza al instalar el software AWS IoT Greengrass Core para iniciar el núcleo como un servicio de Windows y configurarlo para que se inicie cuando se inicie el dispositivo.
Tras configurar el servicio, puede ejecutar los siguientes comandos para configurar el inicio del dispositivo durante el arranque y para iniciar o detener el software AWS IoT Greengrass Core. Debe ejecutar la línea de comandos o PowerShell como administrador para ejecutar estos comandos.
Controle la asignación de memoria con opciones JVM
Si utilizas un dispositivo con memoria limitada, puedes usar las opciones de la máquina virtual de Java (JVM) para controlar el tamaño máximo del montón, los modos de recolección de basura y las opciones del compilador, que controlan la cantidad de memoria que utiliza el software AWS IoT Greengrass Core. AWS IoT Greengrass El tamaño del montón JVM determina la cantidad de memoria que puede utilizar una aplicación antes de que se produzca la recolección de elementos
Para controlar la asignación de memoria, cree una nueva implementación o revise una implementación existente que incluya el componente núcleo y especifique sus JVM opciones en el parámetro de jvmOptions
configuración de la configuración del componente núcleo.
Según sus requisitos, puede ejecutar el software AWS IoT Greengrass Core con una asignación de memoria reducida o con una asignación de memoria mínima.
Asignación de memoria reducida
Para ejecutar el software AWS IoT Greengrass Core con una asignación de memoria reducida, le recomendamos que utilice el siguiente ejemplo de actualización de combinación de configuraciones para establecer JVM las opciones en la configuración de Nucleus:
{ "jvmOptions": "-XX:+UseSerialGC -XX:TieredStopAtLevel=1" }
Asignación mínima de memoria
Para ejecutar el software AWS IoT Greengrass Core con una asignación de memoria mínima, le recomendamos que utilice el siguiente ejemplo de actualización de combinación de configuraciones para establecer JVM las opciones en la configuración de Nucleus:
{ "jvmOptions": "-Xmx32m -XX:+UseSerialGC -Xint" }
importante
La ejecución AWS IoT Greengrass del software Core con una asignación de memoria mínima puede tener un impacto significativo en el rendimiento en los sistemas de baja especificación, ya que JVM procesará más cuando utilice menos memoria. Recomendamos ajustar las opciones para equilibrar las necesidades de memoria y rendimiento.
En estos ejemplos de actualizaciones de combinación de configuraciones se utilizan las siguientes JVM opciones:
-XX:+UseSerialGC
-
Especifica el uso de la recolección de basura en serie para obtener espacio en el JVM montón. El recolector de basura en serie es más lento, pero utiliza menos memoria que otras implementaciones de recolección de JVM basura.
-XX:TieredStopAtLevel=1
-
Le indica que utilice JVM el compilador Java just-in-time (JIT) una vez. Como el código JIT compilado ocupa espacio en la memoria del dispositivo, usar el JIT compilador más de una vez consume más memoria que una sola compilación.
-Xmx
NN
m-
Establece el tamaño máximo del JVM montón.
importante
Si el tamaño máximo del montón es demasiado bajo, se pueden producir errores o out-of-memory un rendimiento más lento. Recomendamos medir el uso actual del montón antes de establecer un tamaño máximo con esta opción.
-Xmx
Configure el suyo JVM con laNN
m-XX:NativeMemoryTracking=detail
JVM opción. A continuación, mida el uso actual del montón mediante la solicitud deVM.native_memory
comandos de la utilidad jcmd. Si la medición del montón no es una opción, utilícela
-Xmx64m
como valor inicial para limitar el tamaño del montón a 64 MB. A partir de ahí, puede reducir gradualmente el tamaño máximo del montón. Para una asignación de memoria mínima,-Xmx32m
utilícelo como valor inicial para limitar el tamaño del montón a 32 MB.Puede aumentar o disminuir el
-Xmx
valor en función de sus necesidades reales; sin embargo, le recomendamos encarecidamente que no establezca el tamaño máximo del montón por debajo de 16 MB. La cantidad de tamaño de JVM pila necesaria también puede variar con el tiempo en función de los componentes del complemento implementados en el dispositivo principal. Si el tamaño máximo de pila es demasiado bajo para su entorno, es posible que el software AWS IoT Greengrass Core detecte errores inesperados debido a la falta de memoria. Si el rendimiento es más lento o se producen errores debido a una memoria insuficiente, vuelva a una configuración que se sepa que es correcta. Por ejemplo, si el tamaño normal del montón asignado es41428KB
, utilízalo-Xmx40m
para limitar ligeramente el uso del montón. -Xint
-
Le indica que JVM no utilice el compilador just-in-time ()JIT. En su lugar, se JVM ejecuta en modo de solo interpretación. Este modo es más lento (potencialmente 20 veces más lento para las implementaciones en sistemas de gama baja) que la ejecución de código JIT compilado; sin embargo, el código compilado no ocupa espacio en la memoria.
Para obtener información sobre la creación de actualizaciones de combinaciones de configuraciones, consulte. Actualizar las configuraciones de los componentes
Configure el usuario que ejecuta los componentes
El software AWS IoT Greengrass Core puede ejecutar procesos de componentes como un usuario y un grupo del sistema distintos del que ejecuta el software. Esto aumenta la seguridad, ya que puede ejecutar el software AWS IoT Greengrass principal como usuario root o como usuario administrador, sin conceder esos permisos a los componentes que se ejecutan en el dispositivo principal.
En la siguiente tabla se indican los tipos de componentes que el software AWS IoT Greengrass principal puede ejecutar como usuario que especifique. Para obtener más información, consulte Tipos de componentes.
Tipo de componente | Configure el usuario del componente |
---|---|
Nucleus |
|
Complemento |
|
Genérico |
|
Lambda (no contenerizada) |
|
Lambda (en contenedor) |
|
Debe crear el usuario del componente antes de poder especificarlo en una configuración de despliegue. En los dispositivos basados en Windows, también debe almacenar el nombre de usuario y la contraseña del usuario en la instancia del administrador de credenciales de la LocalSystem cuenta. Para obtener más información, consulte Configure un usuario de componentes en dispositivos Windows.
Al configurar el usuario del componente en un dispositivo basado en Linux, también puede especificar un grupo si lo desea. Especifique el usuario y el grupo separados por dos puntos (:
) en el siguiente formato:.
Si no especifica ningún grupo, el software AWS IoT Greengrass Core utilizará de forma predeterminada el grupo principal del usuario. Puede usar el nombre o el ID para identificar al usuario y al grupo. user
:group
En los dispositivos basados en Linux, también puede ejecutar componentes del sistema como un usuario del sistema que no existe (también denominado usuario desconocido) para aumentar la seguridad. Un proceso de Linux puede indicar cualquier otro proceso que ejecute el mismo usuario. Un usuario desconocido no ejecuta otros procesos, por lo que puede ejecutar componentes como un usuario desconocido para evitar que los componentes señalen otros componentes del dispositivo principal. Para ejecutar los componentes como un usuario desconocido, especifique un ID de usuario que no exista en el dispositivo principal. También puede especificar un ID de grupo que no existe para que se ejecute como un grupo desconocido.
Puede configurar el usuario para cada componente y para cada dispositivo principal.
-
Configure para un componente
Puede configurar cada componente para que se ejecute con un usuario específico de ese componente. Al crear una implementación, puede especificar el usuario de cada componente en la
runWith
configuración de ese componente. El software AWS IoT Greengrass principal ejecuta los componentes como el usuario especificado si los configura. De lo contrario, ejecuta los componentes de forma predeterminada como el usuario predeterminado que se configura para el dispositivo principal. Para obtener más información sobre cómo especificar el usuario del componente en la configuración de despliegue, consulte el parámetro runWithde configuración enCrear implementaciones. -
Configure el usuario predeterminado para un dispositivo principal
Puede configurar un usuario predeterminado que el software AWS IoT Greengrass principal utilice para ejecutar los componentes. Cuando el software AWS IoT Greengrass principal ejecuta un componente, comprueba si ha especificado un usuario para ese componente y lo utiliza para ejecutar el componente. Si el componente no especifica un usuario, el software AWS IoT Greengrass principal ejecuta el componente como el usuario predeterminado que configuró para el dispositivo principal. Para obtener más información, consulte Configure el usuario del componente predeterminado.
nota
En los dispositivos basados en Windows, debe especificar al menos un usuario predeterminado para ejecutar los componentes.
En los dispositivos basados en Linux, se deben tener en cuenta las siguientes consideraciones si no se configura un usuario para que ejecute componentes:
-
Si ejecuta el software AWS IoT Greengrass principal como root, el software no ejecutará los componentes. Debe especificar un usuario predeterminado para ejecutar los componentes si ejecuta los componentes como root.
-
Si ejecuta el software AWS IoT Greengrass principal como usuario no root, el software ejecuta los componentes como ese usuario.
Temas
Configure un usuario de componentes en dispositivos Windows
Para configurar un usuario de componentes en un dispositivo basado en Windows
-
Cree el usuario del componente en la LocalSystem cuenta del dispositivo.
net user /add
component-user
password
-
Utilice la PsExec utilidad de Microsoft
para almacenar el nombre de usuario y la contraseña del usuario del componente en la instancia de Credential Manager de la LocalSystem cuenta. psexec -s cmd /c cmdkey /generic:
component-user
/user:component-user
/pass:password
nota
En los dispositivos basados en Windows, la LocalSystem cuenta ejecuta el núcleo de Greengrass y debe utilizar PsExec la utilidad para almacenar la información del usuario del componente en LocalSystem la cuenta. El uso de la aplicación Credential Manager almacena esta información en la cuenta de Windows del usuario que ha iniciado sesión actualmente, en lugar de en la cuenta. LocalSystem
Configure el usuario del componente predeterminado
Puede usar una implementación para configurar el usuario predeterminado en un dispositivo principal. En esta implementación, se actualiza la configuración de los componentes del núcleo.
nota
También puede configurar el usuario predeterminado al instalar el software AWS IoT Greengrass Core con la --component-default-user
opción. Para obtener más información, consulte Instalación del software AWS IoT Greengrass Core.
Cree una implementación que especifique la siguiente actualización de configuración para el aws.greengrass.Nucleus
componente.
El siguiente ejemplo define una implementación para un dispositivo basado en Linux que se configura ggc_user
como usuario y ggc_group
grupo predeterminados. La actualización de la merge
configuración requiere un objeto serializado. JSON
{ "components": { "aws.greengrass.Nucleus": { "version": "2.13.0", "configurationUpdate": { "merge": "{\"runWithDefault\":{\"posixUser\":\"ggc_user:ggc_group\"}}" } } } }
Configure los límites de recursos del sistema para los componentes
nota
Esta función está disponible para la versión 2.4.0 y versiones posteriores del componente núcleo de Greengrass. AWS IoT Greengrass actualmente no admite esta función en los dispositivos principales de Windows.
Puede configurar la cantidad CPU y el RAM uso máximos que los procesos de cada componente pueden utilizar en el dispositivo principal.
En la siguiente tabla se muestran los tipos de componentes que admiten los límites de recursos del sistema. Para obtener más información, consulte Tipos de componentes.
Tipo de componente | Configure los límites de recursos del sistema |
---|---|
Nucleus |
|
Complemento |
|
Genérico |
|
Lambda (no contenerizada) |
|
Lambda (en contenedor) |
|
importante
Los límites de recursos del sistema no se admiten cuando se ejecuta el software AWS IoT Greengrass principal en un contenedor de Docker.
Puede configurar los límites de recursos del sistema para cada componente y para cada dispositivo principal.
-
Configúrelo para un componente
Puede configurar cada componente con los límites de recursos del sistema específicos para ese componente. Al crear una implementación, puede especificar los límites de recursos del sistema para cada componente de la implementación. Si el componente admite los límites de recursos del sistema, el software AWS IoT Greengrass Core aplica los límites a los procesos del componente. Si no especifica los límites de recursos del sistema para un componente, el software AWS IoT Greengrass principal utilizará los valores predeterminados que haya configurado para el dispositivo principal. Para obtener más información, consulte Crear implementaciones.
-
Configure los valores predeterminados para un dispositivo principal
Puede configurar los límites de recursos del sistema predeterminados que el software AWS IoT Greengrass Core aplica a los componentes que admiten estos límites. Cuando el software AWS IoT Greengrass principal ejecuta un componente, aplica los límites de recursos del sistema que especifique para ese componente. Si ese componente no especifica los límites de recursos del sistema, el software AWS IoT Greengrass Core aplica los límites de recursos del sistema predeterminados que usted configure para el dispositivo principal. Si no especificas los límites de recursos del sistema predeterminados, el software AWS IoT Greengrass Core no aplicará ningún límite de recursos del sistema de forma predeterminada. Para obtener más información, consulte Configure los límites de recursos del sistema predeterminados.
Configure los límites de recursos del sistema predeterminados
Puede implementar el componente núcleo de Greengrass para configurar los límites de recursos del sistema predeterminados para un dispositivo principal. Para configurar los límites de recursos del sistema predeterminados, cree una implementación que especifique la siguiente actualización de configuración para el aws.greengrass.Nucleus
componente.
{ "runWithDefault": { "systemResourceLimits": { "cpu":
cpuTimeLimit
, "memory":memoryLimitInKb
} } }
El siguiente ejemplo define una implementación que configura el límite de CPU tiempo en2
, lo que equivale al 50% de uso en un dispositivo con 4 CPU núcleos. En este ejemplo también se configura el uso de memoria en 100 MB.
{ "components": { "aws.greengrass.Nucleus": { "version": "2.13.0", "configurationUpdate": { "merge": "{\"runWithDefault\":{\"systemResourceLimits\":\"cpus\":2,\"memory\":102400}}}" } } } }
Realizar la conexión en el puerto 443 o a través de un proxy de red
AWS IoT Greengrass los dispositivos principales se comunican AWS IoT Core mediante el protocolo MQTT de mensajería con autenticación de TLS cliente. Por convención, MQTT Over TLS usa el puerto 8883. Sin embargo, como medida de seguridad, los entornos restrictivos pueden limitar el tráfico entrante y saliente a un pequeño rango de puertos. TCP Por ejemplo, un firewall corporativo puede abrir el puerto 443 para el HTTPS tráfico, pero cerrar otros puertos que se utilizan para protocolos menos comunes, como el puerto 8883 para el tráfico. MQTT Otros entornos restrictivos pueden requerir que todo el tráfico pase por un proxy antes de conectarse a Internet.
nota
Los dispositivos principales de Greengrass que ejecutan el componente núcleo de Greengrass v2.0.3 y versiones anteriores utilizan el puerto 8443 para conectarse al punto final del plano de datos. AWS IoT Greengrass Estos dispositivos deben poder conectarse a este punto final en el puerto 8443. Para obtener más información, consulte Permitir el tráfico del dispositivo a través de un proxy o firewall.
Para habilitar la comunicación en estos escenarios, AWS IoT Greengrass proporciona las siguientes opciones de configuración:
-
MQTTcomunicación a través del puerto 443. Si su red permite conexiones al puerto 443, puede configurar el dispositivo principal de Greengrass para que utilice el puerto 443 para el MQTT tráfico en lugar del puerto predeterminado 8883. Esto puede ser una conexión directa al puerto 443 o una conexión a través de un servidor proxy de red. A diferencia de la configuración predeterminada, que utiliza la autenticación de cliente basada en certificados, en MQTT el puerto 443 se utiliza la función de servicio del dispositivo para la autenticación.
Para obtener más información, consulte Configure MQTT a través del puerto 443.
-
HTTPScomunicación a través del puerto 443. El software AWS IoT Greengrass Core envía el HTTPS tráfico a través del puerto 8443 de forma predeterminada, pero puede configurarlo para que utilice el puerto 443. AWS IoT Greengrass utiliza la TLS extensión Application Layer Protocol Network
(ALPN) para habilitar esta conexión. Al igual que en la configuración predeterminada, HTTPS en el puerto 443 se utiliza la autenticación de cliente basada en certificados. importante
Para utilizar ALPN y habilitar la HTTPS comunicación a través del puerto 443, el dispositivo principal debe ejecutar la actualización 252 de Java 8 o una versión posterior. También son compatibles todas las actualizaciones de la versión 9 y posteriores de JavaALPN.
Para obtener más información, consulte Configure HTTPS a través del puerto 443.
-
Conexión a través de un proxy de red. Puede configurar un servidor proxy de red para que actúe como intermediario para conectarse al dispositivo principal de Greengrass. AWS IoT Greengrass admite la autenticación básica para servidores proxy HTTP y servidores proxy. HTTPS
Los dispositivos principales de Greengrass deben ejecutar Greengrass nucleus v2.5.0 o posterior para poder usar proxies. HTTPS
El software AWS IoT Greengrass Core transfiere la configuración del proxy a los componentes a través de las variables de entorno
ALL_PROXY
,HTTP_PROXY
,HTTPS_PROXY
y.NO_PROXY
Los componentes deben usar esta configuración para conectarse a través del proxy. Los componentes utilizan bibliotecas comunes (como boto3URL, c y elrequests
paquete python) que suelen utilizar estas variables de entorno de forma predeterminada para establecer conexiones. Si un componente también especifica estas variables de entorno, AWS IoT Greengrass no las anula.Para obtener más información, consulte Configure un proxy de red.
Configure MQTT a través del puerto 443
Puede configurarlo MQTT a través del puerto 443 en los dispositivos principales existentes o al instalar el software AWS IoT Greengrass Core en un dispositivo principal nuevo.
Temas
Configure MQTT a través del puerto 443 en los dispositivos principales existentes
Puede usar una implementación para configurar a MQTT través del puerto 443 en un dispositivo de un solo núcleo o en un grupo de dispositivos principales. En esta implementación, se actualiza la configuración de los componentes del núcleo. El núcleo se reinicia al actualizar su mqtt
configuración.
Para realizar la configuración a MQTT través del puerto 443, cree una implementación que especifique la siguiente actualización de configuración para el aws.greengrass.Nucleus
componente.
{ "mqtt": { "port": 443 } }
El siguiente ejemplo define una implementación que se configura a MQTT través del puerto 443. La actualización merge
de configuración requiere un objeto serializado. JSON
{ "components": { "aws.greengrass.Nucleus": { "version": "2.13.0", "configurationUpdate": { "merge": "{\"mqtt\":{\"port\":443}}" } } } }
Configure MQTT a través del puerto 443 durante la instalación
Puede configurarlo MQTT a través del puerto 443 al instalar el software AWS IoT Greengrass Core en un dispositivo principal. Utilice el argumento del --init-config
instalador para realizar la configuración a MQTT través del puerto 443. Puede especificar este argumento al realizar la instalación con aprovisionamiento manual, aprovisionamiento de flota o aprovisionamiento personalizado.
Configure HTTPS a través del puerto 443
Esta función requiere la Núcleo de Greengrass versión 2.0.4 o posterior.
Puede configurarla HTTPS a través del puerto 443 en los dispositivos principales existentes o al instalar el software AWS IoT Greengrass Core en un dispositivo principal nuevo.
Temas
Configure HTTPS a través del puerto 443 en los dispositivos principales existentes
Puede usar una implementación para configurar a HTTPS través del puerto 443 en un dispositivo de un solo núcleo o en un grupo de dispositivos principales. En esta implementación, se actualiza la configuración de los componentes del núcleo.
Para realizar la configuración a HTTPS través del puerto 443, cree una implementación que especifique la siguiente actualización de configuración para el aws.greengrass.Nucleus
componente.
{ "greengrassDataPlanePort": 443 }
El siguiente ejemplo define una implementación que se configura a HTTPS través del puerto 443. La actualización merge
de configuración requiere un objeto serializado. JSON
{ "components": { "aws.greengrass.Nucleus": { "version": "2.13.0", "configurationUpdate": { "merge": "{\"greengrassDataPlanePort\":443}" } } } }
Configure HTTPS a través del puerto 443 durante la instalación
Puede configurarlo HTTPS a través del puerto 443 al instalar el software AWS IoT Greengrass Core en un dispositivo principal. Utilice el argumento del --init-config
instalador para realizar la configuración a HTTPS través del puerto 443. Puede especificar este argumento al realizar la instalación con aprovisionamiento manual, aprovisionamiento de flota o aprovisionamiento personalizado.
Configure un proxy de red
Siga el procedimiento de esta sección para configurar los dispositivos principales de Greengrass para que se conecten a Internet a través de un proxy HTTP o de HTTPS red. Para obtener más información sobre los puntos finales y los puertos que utilizan los dispositivos principales, consulte. Permitir el tráfico del dispositivo a través de un proxy o firewall
importante
Si su dispositivo principal ejecuta una versión del núcleo de Greengrass anterior a la v2.4.0, la función de su dispositivo debe permitir los siguientes permisos para usar un proxy de red:
-
iot:Connect
-
iot:Publish
-
iot:Receive
-
iot:Subscribe
Esto es necesario porque el dispositivo utiliza las AWS credenciales del servicio de intercambio de fichas para MQTT autenticar las conexiones. AWS IoT El dispositivo se utiliza MQTT para recibir e instalar despliegues desde el Nube de AWS, por lo que tu dispositivo no funcionará a menos que definas estos permisos en función de su función. Los dispositivos suelen utilizar certificados X.509 para autenticar MQTT las conexiones, pero los dispositivos no pueden hacerlo para autenticarse cuando utilizan un proxy.
Para obtener más información sobre cómo configurar la función del dispositivo, consulte. Autorizar a los dispositivos principales a interactuar con AWS los servicios
Temas
Configure un proxy de red en los dispositivos principales existentes
Puede usar una implementación para configurar un proxy de red en un dispositivo de un solo núcleo o en un grupo de dispositivos principales. En esta implementación, se actualiza la configuración de los componentes del núcleo. El núcleo se reinicia al actualizar su networkProxy
configuración.
Para configurar un proxy de red, cree una implementación para el aws.greengrass.Nucleus
componente que combine la siguiente actualización de configuración. Esta actualización de configuración contiene el networkProxy objeto.
{ "networkProxy": { "noProxyAddresses": "http://192.168.0.1,www.example.com", "proxy": { "url": "https://my-proxy-server:1100" } } }
El siguiente ejemplo define una implementación que configura un proxy de red. La actualización merge
de configuración requiere un objeto serializado. JSON
{ "components": { "aws.greengrass.Nucleus": { "version": "2.13.0", "configurationUpdate": { "merge": "{\"networkProxy\":{\"noProxyAddresses\":\"http://192.168.0.1,www.example.com\",\"proxy\":{\"url\":\"https://my-proxy-server:1100\",\"username\":\"Mary_Major\",\"password\":\"pass@word1357\"}}}" } } } }
Configure un proxy de red durante la instalación
Puede configurar un proxy de red al instalar el software AWS IoT Greengrass Core en un dispositivo principal. Utilice el argumento del --init-config
instalador para configurar el proxy de red. Puede especificar este argumento al realizar la instalación con aprovisionamiento manual, aprovisionamiento de flota o aprovisionamiento personalizado.
Habilite el dispositivo principal para que confíe en un proxy HTTPS
Al configurar un dispositivo principal para usar un HTTPS proxy, debe agregar la cadena de certificados del servidor proxy al dispositivo principal para que pueda confiar en el HTTPS proxy. De lo contrario, el dispositivo principal podría encontrar errores al intentar enrutar el tráfico a través del proxy. Añada el certificado de CA del servidor proxy al archivo de certificado de CA raíz de Amazon del dispositivo principal.
Para permitir que el dispositivo principal confíe en el HTTPS proxy
-
Busque el archivo de certificado de CA raíz de Amazon en el dispositivo principal.
-
Si ha instalado el software AWS IoT Greengrass Core con aprovisionamiento automático, el archivo de certificado de CA raíz de Amazon se encuentra en
.
/rootCA.pem/greengrass/v2
-
Si instaló el software AWS IoT Greengrass Core con aprovisionamiento manual o de flota, es posible que el archivo de certificado de CA raíz de Amazon esté en
.
/AmazonRootCA1.pem/greengrass/v2
Si el certificado de CA raíz de Amazon no existe en estas ubicaciones, registra la
system.rootCaPath
propiedad
para encontrar su ubicación.
/config/effectiveConfig.yaml/greengrass/v2
-
-
Añada el contenido del archivo de certificado de CA del servidor proxy al archivo de certificado de CA raíz de Amazon.
El siguiente ejemplo muestra un certificado de CA de un servidor proxy agregado al archivo de certificado de CA raíz de Amazon.
-----BEGIN CERTIFICATE----- MIIEFTCCAv2gAwIQWgIVAMHSAzWG/5YVRYtRQOxXUTEpHuEmApzGCSqGSIb3DQEK \nCwUAhuL9MQswCQwJVUzEPMAVUzEYMBYGA1UECgwP1hem9uLmNvbSBJbmMuMRww
... content of proxy CA certificate ...
+vHIRlt0e5JAm5\noTIZGoFbK82A0/nO7f/t5PSIDAim9V3Gc3pSXxCCAQoFYnui GaPUlGk1gCE84a0X\n7Rp/lND/PuMZ/s8YjlkY2NmYmNjMCAXDTE5MTEyN2cM216 gJMIADggEPADf2/m45hzEXAMPLE= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDQTCCAimgF6AwIBAgITBmyfz/5mjAo54vB4ikPmljZKyjANJmApzyMZFo6qBg ADA5MQswCQYDVQQGEwJVUzEPMA0tMVT8QtPHRh8jrdkGA1UEChMGDV3QQDExBBKW... content of root CA certificate ...
o/ufQJQWUCyziar1hem9uMRkwFwYVPSHCb2XV4cdFyQzR1KldZwgJcIQ6XUDgHaa 5MsI+yMRQ+hDaXJiobldXgjUka642M4UwtBV8oK2xJNDd2ZhwLnoQdeXeGADKkpy rqXRfKoQnoZsG4q5WTP46EXAMPLE -----END CERTIFICATE-----
El networkProxy objeto
Utilice el objeto networkProxy
para especificar información sobre el proxy de red. Este objeto contiene la siguiente información:
noProxyAddresses
-
(Opcional) Una lista separada por comas de direcciones IP o nombres de host que están exentos del proxy.
proxy
-
El proxy al que se va a conectar. Este objeto contiene la siguiente información:
url
-
El URL del servidor proxy en el formato
scheme://userinfo@host:port
.-
scheme
— El esquema, que debe serhttp
ohttps
.importante
Los dispositivos principales de Greengrass deben ejecutar Greengrass nucleus v2.5.0 o posterior para poder usar proxies. HTTPS
Si configura un HTTPS proxy, debe añadir el certificado de CA del servidor proxy al certificado de CA raíz de Amazon del dispositivo principal. Para obtener más información, consulte Habilite el dispositivo principal para que confíe en un proxy HTTPS.
-
userinfo
— (Opcional) La información del nombre de usuario y la contraseña. Si especifica esta información enurl
, el dispositivo principal de Greengrass ignora losusername
campos y.password
-
host
— El nombre de host o la dirección IP del servidor proxy. -
port
— (Opcional) El número de puerto. Si no especificas el puerto, el dispositivo principal de Greengrass utilizará los siguientes valores predeterminados:-
http
— 80 -
https
— 443
-
-
username
-
(Opcional) El nombre de usuario que autentica el servidor proxy.
password
-
(Opcional) La contraseña que autentica el servidor proxy.
Utilice un certificado de dispositivo firmado por una entidad emisora de certificados privada
Si utiliza una autoridad de certificación (CA) privada personalizada, debe establecer el 'núcleogreengrassDataPlaneEndpoint
' de Greengrass en. iotdata
Puede configurar esta opción durante el despliegue o la instalación mediante el argumento del --init-config
instalador.
Puede personalizar el punto final del plano de datos de Greengrass al que se conecta el dispositivo. Puede configurar esta opción de configuración iotdata
para establecer el punto final del plano de datos de Greengrass en el mismo punto final que el punto final de datos de IoT, que puede especificar con. iotDataEndpoint
Configure los MQTT tiempos de espera y los ajustes de la memoria caché
En el AWS IoT Greengrass entorno, los componentes se pueden utilizar MQTT para comunicarse con AWS IoT Core ellos. El software AWS IoT Greengrass Core gestiona MQTT los mensajes de los componentes. Cuando el dispositivo principal pierde la conexión con el Nube de AWS, el software almacena en caché los MQTT mensajes para volver a intentarlo más tarde, cuando se restablezca la conexión. Puede configurar ajustes como los tiempos de espera de los mensajes y el tamaño de la memoria caché. Para obtener más información, consulte mqtt
los parámetros de mqtt.spooler
configuración del componente núcleo de Greengrass.
AWS IoT Core impone cuotas de servicio a su agente de MQTT mensajes. Estas cuotas pueden aplicarse a los mensajes que envíes entre los dispositivos principales y AWS IoT Core. Para obtener más información, consulta las cuotas de servicio de AWS IoT Core Message Broker en Referencia general de AWS.