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.
Bróker MQTT 5 (EMQX)
El componente intermediario MQTT de EMQX (aws.greengrass.clientdevices.mqtt.EMQX
) gestiona los mensajes MQTT entre los dispositivos cliente y un dispositivo principal de Greengrass. Este componente proporciona una versión modificada del broker EMQX MQTT 5.0. Implemente este broker de MQTT para utilizar las funciones de MQTT 5 en la comunicación entre los dispositivos cliente y un dispositivo principal. Para obtener más información sobre cómo elegir un bróker de MQTT, consulte. Elija un bróker MQTT
Este bróker implementa el protocolo MQTT 5.0. Incluye compatibilidad con los intervalos de caducidad de las sesiones y los mensajes, las propiedades de los usuarios, las suscripciones compartidas, los alias de los temas y mucho más. MQTT 5 es compatible con versiones anteriores de MQTT 3.1.1, por lo que si utiliza el bróker MQTT 3.1.1 de Moquette, podrá sustituirlo por el bróker EMQX MQTT 5 y los dispositivos cliente podrán seguir conectándose y funcionando como de costumbre.
Los dispositivos cliente son dispositivos IoT locales que se conectan a un dispositivo central de Greengrass para enviar mensajes MQTT y datos para su procesamiento. Para obtener más información, consulte Interactúa con dispositivos IoT locales.
Versiones
Este componente tiene las siguientes versiones:
Tipo
Este componente es un componente genérico (aws.greengrass.generic
). El núcleo de Greengrass ejecuta los scripts del ciclo de vida del componente.
Para obtener más información, consulte Tipos de componentes.
Sistema operativo
Este componente se puede instalar en los dispositivos principales que ejecutan los siguientes sistemas operativos:
Requisitos
Este componente tiene los siguientes requisitos:
-
El dispositivo principal debe poder aceptar conexiones en el puerto en el que opera el broker MQTT. Este componente ejecuta el broker MQTT en el puerto 8883 de forma predeterminada. Puede especificar un puerto diferente al configurar este componente.
Si especifica un puerto diferente y utiliza el componente de puente MQTT para retransmitir mensajes MQTT a otros intermediarios, debe utilizar MQTT bridge v2.1.0 o posterior. Configúrelo para que utilice el puerto en el que opera el broker MQTT.
Si especifica un puerto diferente y utiliza el componente IP detector para gestionar los puntos finales del broker MQTT, debe utilizar IP detector v2.1.0 o una versión posterior. Configúrelo para que indique el puerto en el que opera el broker MQTT.
-
En los dispositivos principales de Linux, Docker se instala y configura en el dispositivo principal:
-
Docker Engine 1.9.1 o posterior instalado en el dispositivo principal de Greengrass. Se ha comprobado que la versión 20.10 es la última versión que funciona con el software Core. AWS IoT Greengrass Debe instalar Docker directamente en el dispositivo principal antes de implementar los componentes que ejecutan contenedores de Docker.
-
El daemon de Docker se inició y se ejecutó en el dispositivo principal antes de implementar este componente.
-
El usuario del sistema que ejecuta este componente debe tener permisos de administrador o root. Como alternativa, puede ejecutar este componente como usuario del sistema en el docker
grupo y configurar la requiresPrivileges
opción de este componente false
para ejecutar el broker MQTT de EQMX sin privilegios.
-
Se admite la ejecución del componente broker MQTT de EMQX en una VPC.
-
La plataforma no admite el componente de intermediario MQTT de EMQX. armv7
Dependencias
Al implementar un componente, AWS IoT Greengrass también despliega versiones compatibles de sus dependencias. Esto significa que debe cumplir los requisitos del componente y de todas sus dependencias para poder implementarlo correctamente. En esta sección se enumeran las dependencias de las versiones publicadas de este componente y las restricciones de las versiones semánticas que definen las versiones de los componentes para cada dependencia. También puede ver las dependencias de cada versión del componente en la consola.AWS IoT Greengrass En la página de detalles del componente, busque la lista de dependencias.
- 2.0.1
-
La siguiente tabla muestra las dependencias de la versión 2.0.1 de este componente.
- 2.0.0
-
La siguiente tabla muestra las dependencias de la versión 2.0.0 de este componente.
- 1.2.2 – 1.2.3
-
La siguiente tabla muestra las dependencias de las versiones 1.2.2 a 1.2.3 de este componente.
- 1.2.0 and 1.2.1
-
La siguiente tabla muestra las dependencias de las versiones 1.2.0 y 1.2.1 de este componente.
- 1.0.0 and 1.1.0
-
La siguiente tabla muestra las dependencias de las versiones 1.0.0 y 1.1.0 de este componente.
Para obtener más información sobre las dependencias de los componentes, consulta la referencia de recetas de componentes.
Configuración
- 2.0.0 - 2.0.1
-
Este componente proporciona los siguientes parámetros de configuración que puede personalizar al implementar el componente.
Si utiliza la versión 2 del componente MQTT 5 broker (EMQX), debe actualizar el archivo de configuración. Los archivos de configuración de la versión 1 no funcionan con la versión 2.
- eMqxConfig
-
(Opcional) La configuración del broker EMQX MQTT que se va a utilizar. Puede configurar las opciones de configuración de EMQX en este componente.
Cuando se utiliza el bróker EMQX, Greengrass utiliza una configuración predeterminada. Esta configuración se utiliza a menos que la modifique mediante este campo.
La modificación de los siguientes ajustes de configuración provoca el reinicio del componente broker EMQX. Se aplican otros cambios de configuración sin reiniciar el componente.
-
emqxConfig/cluster
-
emqxConfig/node
-
emqxConfig/rpc
aws.greengrass.clientdevices.mqtt.EMQX
le permite configurar opciones sensibles a la seguridad. Estas incluyen la configuración de TLS, la autenticación y los proveedores de autorización. Recomendamos la configuración predeterminada que utiliza la autenticación TLS mutua y el proveedor de autenticación de dispositivos cliente Greengrass.
ejemplo Ejemplo: configuración predeterminada
El siguiente ejemplo muestra los valores predeterminados establecidos para el broker MQTT 5 (EMQX). Puede anular estos parámetros mediante el ajuste de configuración. emqxConfig
{
"authorization": {
"no_match": "deny",
"sources": []
},
"node": {
"cookie": "<placeholder>
"
},
"listeners": {
"ssl": {
"default": {
"ssl_options": {
"keyfile": "{work:path}\\data\\key.pem",
"certfile": "{work:path}\\data\\cert.pem",
"cacertfile": null,
"verify": "verify_peer",
"versions": ["tlsv1.3", "tlsv1.2"],
"fail_if_no_peer_cert": true
}
}
},
"tcp": {
"default": {
"enabled": false
}
},
"ws": {
"default": {
"enabled": false
}
},
"wss": {
"default": {
"enabled": false
}
}
},
"plugins": {
"states": [{"name_vsn": "gg-1.0.0", "enable": true}],
"install_dir": "plugins"
}
}
- AuthMode
-
(Opcional) Establece el proveedor de autorización del corredor. Puede ser uno de los siguientes valores:
-
enabled
— (Predeterminado) Utilice el proveedor de autenticación y autorización de Greengrass.
-
bypass_on_failure
— Utilice el proveedor de autenticación Greengrass y, a continuación, utilice los demás proveedores de autenticación de la cadena de proveedores de EMQX si Greengrass deniega la autenticación o la autorización.
-
bypass
— El proveedor de Greengrass está deshabilitado. La cadena de proveedores de EMQX gestiona la autenticación y la autorización.
requiresPrivilege
-
(Opcional) En los dispositivos principales de Linux, puede especificar que se ejecute el broker MQTT de EMQX sin privilegios de administrador o root. Si establece esta opción enfalse
, el usuario del sistema que ejecute este componente debe ser miembro del grupo. docker
Valor predeterminado: true
startupTimeoutSeconds
-
(Opcional) El tiempo máximo en segundos para que se inicie el broker MQTT de EMQX. El estado del componente cambia a BROKEN
si supera este tiempo de espera.
Valor predeterminado: 90
ipcTimeoutSeconds
-
(Opcional) El tiempo máximo en segundos que tarda el componente en esperar a que el núcleo de Greengrass responda a las solicitudes de comunicación entre procesos (IPC). Aumente este número si este componente informa de errores de tiempo de espera al comprobar si un dispositivo cliente está autorizado.
Valor predeterminado: 5
crtLogLevel
-
(Opcional) El nivel de registro de la biblioteca AWS Common Runtime (CRT).
El valor predeterminado es el nivel de registro del broker MQTT de EMQX (in). log.level
emqx
restartIdentifier
-
(Opcional) Configure esta opción para reiniciar el broker MQTT de EMQX. Cuando este valor de configuración cambia, este componente reinicia el broker MQTT. Puede utilizar esta opción para forzar la desconexión de los dispositivos cliente.
dockerOptions
-
(Opcional) Configure esta opción solo en los sistemas operativos Linux para añadir parámetros a la línea de comandos de Docker. Por ejemplo, para asignar puertos adicionales, utilice el parámetro de -p
Docker:
"-p 1883:1883"
ejemplo Ejemplo: actualizar un archivo de configuración de la versión 1.x a la versión 2.x
El siguiente ejemplo muestra los cambios necesarios para actualizar un archivo de configuración de la versión 1.x a la versión 2.x.
El archivo de configuración de la versión 1.x:
{
"emqx": {
"listener.ssl.external": "443",
"listener.ssl.external.max_connections": "1024000",
"listener.ssl.external.max_conn_rate": "500",
"listener.ssl.external.rate_limit": "50KB,5s",
"listener.ssl.external.handshake_timeout": "15s",
"log.level": "warning"
},
"mergeConfigurationFiles": {
"etc/plugins/aws_greengrass_emqx_auth.conf": "auth_mode=enabled\n use_greengrass_managed_certificates=true\n"
}
}
El archivo de configuración equivalente para la versión 2:
{
"emqxConfig": {
"listeners": {
"ssl": {
"default": {
"bind": "8883",
"max_connections": "1024000",
"max_conn_rate": "500",
"handshake_timeout": "15s"
}
}
},
"log": {
"console": {
"enable": true,
"level": "warning"
}
}
},
"authMode": "enabled"
}
No hay ningún equivalente a la entrada listener.ssl.external.rate_limit
de configuración. Se ha eliminado la opción de use_greengrass_managed_certificates
configuración.
ejemplo Ejemplo: establecer un puerto nuevo para el bróker
El siguiente ejemplo cambia el puerto en el que opera el broker MQTT del 8883 predeterminado al puerto 1234. Si utiliza Linux, incluya el dockerOptions
campo.
{
"emqxConfig": {
"listeners": {
"ssl": {
"default": {
"bind": 1234
}
}
}
},
"dockerOptions": "-p 1234:1234"
}
ejemplo Ejemplo: ajuste el nivel de registro del bróker MQTT
En el siguiente ejemplo, se cambia el nivel de registro del bróker de MQTT a. debug
Puede elegir entre los siguientes niveles de registro:
-
debug
-
info
-
notice
-
warning
-
error
-
critical
-
alert
-
emergency
El nivel de registro predeterminado eswarning
.
{
"emqxConfig": {
"log": {
"console": {
"level": "debug"
}
}
}
}
ejemplo Ejemplo: habilite el panel de EMQX
El siguiente ejemplo habilita el panel de EMQX para que pueda monitorear y administrar su corredor. Si utiliza Linux, incluya el dockerOptions
campo.
{
"emqxConfig": {
"dashboard": {
"listeners": {
"http": {
"bind": 18083
}
}
}
},
"dockerOptions": "-p 18083:18083"
}
- 1.0.0 - 1.2.2
-
Este componente proporciona los siguientes parámetros de configuración que puede personalizar al implementar el componente.
emqx
-
(Opcional) La configuración del broker MQTT de EMQX que se va a utilizar. Puede configurar un subconjunto de opciones de configuración de EMQX en este componente.
Este objeto contiene la siguiente información:
listener.ssl.external
-
(Opcional) El puerto en el que opera el bróker MQTT.
Si especifica un puerto diferente y utiliza el componente de puente MQTT para retransmitir mensajes MQTT a otros intermediarios, debe utilizar el puente MQTT v2.1.0 o posterior. Configúrelo para que utilice el puerto en el que opera el broker MQTT.
Si especifica un puerto diferente y utiliza el componente IP detector para gestionar los puntos finales del broker MQTT, debe utilizar IP detector v2.1.0 o una versión posterior. Configúrelo para que indique el puerto en el que opera el broker MQTT.
Valor predeterminado: 8883
listener.ssl.external.max_connections
-
(Opcional) El número máximo de conexiones simultáneas que admite el bróker MQTT.
Valor predeterminado: 1024000
listener.ssl.external.max_conn_rate
-
(Opcional) El número máximo de conexiones nuevas por segundo que puede recibir el broker de MQTT.
Valor predeterminado: 500
listener.ssl.external.rate_limit
-
(Opcional) El límite de ancho de banda para todas las conexiones al bróker MQTT. Especifique el ancho de banda y la duración de ese ancho de banda separados por una coma (,
) en el siguiente formato:. bandwidth,duration
Por ejemplo, puede especificar 50KB,5s
limitar el broker MQTT a 50 kilobytes (KB) de datos cada 5 segundos.
listener.ssl.external.handshake_timeout
-
(Opcional) El tiempo que espera el bróker de MQTT para terminar de autenticar una nueva conexión.
Valor predeterminado: 15s
mqtt.max_packet_size
-
(Opcional) El tamaño máximo de un mensaje MQTT.
Predeterminado: 268435455
(256 MB menos 1)
log.level
-
(Opcional) El nivel de registro del bróker MQTT. Puede elegir entre las siguientes opciones:
-
debug
-
info
-
notice
-
warning
-
error
-
critical
-
alert
-
emergency
El nivel de registro predeterminado eswarning
.
requiresPrivilege
-
(Opcional) En los dispositivos principales de Linux, puede especificar que se ejecute el broker MQTT de EMQX sin privilegios de administrador o root. Si establece esta opción enfalse
, el usuario del sistema que ejecute este componente debe ser miembro del grupo. docker
Valor predeterminado: true
startupTimeoutSeconds
-
(Opcional) El tiempo máximo en segundos para que se inicie el broker MQTT de EMQX. El estado del componente cambia a BROKEN
si supera este tiempo de espera.
Valor predeterminado: 90
ipcTimeoutSeconds
-
(Opcional) El tiempo máximo en segundos que tarda el componente en esperar a que el núcleo de Greengrass responda a las solicitudes de comunicación entre procesos (IPC). Aumente este número si este componente informa de errores de tiempo de espera al comprobar si un dispositivo cliente está autorizado.
Valor predeterminado: 5
crtLogLevel
-
(Opcional) El nivel de registro de la biblioteca AWS Common Runtime (CRT).
El valor predeterminado es el nivel de registro del broker MQTT de EMQX (in). log.level
emqx
restartIdentifier
-
(Opcional) Configure esta opción para reiniciar el broker MQTT de EMQX. Cuando este valor de configuración cambia, este componente reinicia el broker MQTT. Puede utilizar esta opción para forzar la desconexión de los dispositivos cliente.
dockerOptions
-
(Opcional) Configure esta opción solo en los sistemas operativos Linux para añadir parámetros a la línea de comandos de Docker. Por ejemplo, para asignar puertos adicionales, utilice el parámetro de -p
Docker:
"-p 1883:1883"
mergeConfigurationFiles
-
(Opcional) Configure esta opción para añadir o anular los valores predeterminados de los archivos de configuración de EMQX especificados. Para obtener información sobre los archivos de configuración y sus formatos, consulte Configuración en la documentación de EMQX 4.0. Los valores que especifique se adjuntan al archivo de configuración.
En el siguiente ejemplo, se actualiza el etc/emqx.conf
archivo.
"mergeConfigurationFiles": {
"etc/emqx.conf": "broker.sys_interval=30s\nbroker.sys_heartbeat=10s"
},
Además de los archivos de configuración compatibles con EMQX, Greengrass admite un archivo que configura el complemento de autenticación de Greengrass para EMQX llamado. etc/plugins/aws_greengrass_emqx_auth.conf
Hay dos opciones compatibles: y. auth_mode
use_greengrass_managed_certificates
Para usar otro proveedor de autenticación, defina la auth_mode
opción en una de las siguientes opciones:
-
enabled
— (Predeterminado) Utilice el proveedor de autenticación y autorización de Greengrass.
-
bypass_on_failure
— Utilice el proveedor de autenticación Greengrass y, a continuación, utilice los demás proveedores de autenticación de la cadena de proveedores de EMQX si Greengrass deniega la autenticación o la autorización.
-
bypass
— El proveedor de Greengrass está deshabilitado. Luego, la cadena de proveedores de EMQX gestiona la autenticación y la autorización.
Si use_greengrass_managed_certificates
es asítrue
, esta opción indica que Greengrass administra los certificados TLS del bróker. Sifalse
, indica que proporciona los certificados a través de otra fuente.
En el siguiente ejemplo, se actualizan los valores predeterminados del archivo etc/plugins/aws_greengrass_emqx_auth.conf
de configuración.
"mergeConfigurationFiles": {
"etc/plugins/aws_greengrass_emqx_auth.conf": "auth_mode=enabled\n use_greengrass_managed_certificates=true\n"
},
aws.greengrass.clientdevices.mqtt.EMQX
permite configurar opciones sensibles a la seguridad. Estas incluyen la configuración de TLS, la autenticación y los proveedores de autorización. La configuración recomendada es la configuración predeterminada que utiliza la autenticación TLS mutua y el proveedor de autenticación de dispositivos cliente Greengrass.
replaceConfigurationFiles
-
(Opcional) Configure esta opción para reemplazar los archivos de configuración de EMQX especificados. Los valores que especifique sustituyen a todo el archivo de configuración existente. No puede especificar el etc/emqx.conf
archivo en esta sección. Debe usarlo mergeConfigurationFile
para modificaretc/emqx.conf
.
ejemplo Ejemplo: actualización de la combinación de configuraciones
El siguiente ejemplo de configuración especifica el funcionamiento del broker MQTT en el puerto 443.
{
"emqx": {
"listener.ssl.external": "443",
"listener.ssl.external.max_connections": "1024000",
"listener.ssl.external.max_conn_rate": "500",
"listener.ssl.external.rate_limit": "50KB,5s",
"listener.ssl.external.handshake_timeout": "15s",
"log.level": "warning"
},
"requiresPrivilege": "true",
"startupTimeoutSeconds": "90",
"ipcTimeoutSeconds": "5"
}
Archivo de registro local
Este componente utiliza el siguiente archivo de registro.
- Linux
-
/greengrass/v2
/logs/aws.greengrass.clientdevices.mqtt.EMQX.log
- Windows
-
C:\greengrass\v2
\logs\aws.greengrass.clientdevices.mqtt.EMQX.log
Para ver los registros de este componente
Licencias
En los sistemas operativos Windows, este software incluye código distribuido según los términos de licencia del software de Microsoft: Microsoft Visual Studio Community 2022. Al descargar este software, aceptas los términos de licencia de ese código.
Este componente se publica en virtud del contrato de licencia de software principal de Greengrass.
Registros de cambios
En la siguiente tabla se describen los cambios en cada versión del componente.
- v2.x
-
Versión
|
Cambios
|
2.0.1
|
Versión actualizada para la versión 2.5.0 de autenticación de dispositivos cliente.
|
2.0.0 |
Esta versión del broker MQTT 5 (EMQX) espera parámetros de configuración diferentes a los de la versión 1.x. Si utiliza una configuración no predeterminada para la versión 1.x, debe actualizar la configuración del componente para la versión 2.x. Para obtener más información, consulte Configuración.
- Nuevas características
-
- Actualizaciones
-
|
- v1.x
-
Versión
|
Cambios
|
1.2.3
|
- Mejoras y correcciones de errores
-
|
1.2.2
|
Versión actualizada para la autenticación de dispositivos cliente, versión 2.4.0.
|
1.2.1
|
- Mejoras y correcciones de errores
-
|
1.2.0
|
Añade soporte para cadenas de certificados.
|
1.1.0
|
- Nuevas características
-
- Mejoras y correcciones de errores
-
|
1.0.1
|
Corrige un problema durante el protocolo de enlace TLS que provocaba que algunos clientes MQTT no pudieran conectarse.
|
1.0.0
|
Versión inicial.
|