Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
MQTT5 courtiers (1EMQX)
Le composant EMQX MQTT broker (aws.greengrass.clientdevices.mqtt.EMQX
) gère les MQTT messages entre les appareils clients et un périphérique principal de Greengrass. Ce composant fournit une version modifiée du broker EMQX MQTT 5.0. Déployez ce MQTT broker pour utiliser MQTT 5 fonctionnalités de communication entre les appareils clients et un appareil principal. Pour plus d'informations sur le choix d'un MQTT courtier, consultezChoisissez un courtier MQTT.
Ce broker implémente le protocole MQTT 5.0. Il inclut la prise en charge des intervalles d'expiration des sessions et des messages, des propriétés utilisateur, des abonnements partagés, des alias de rubrique, etc. MQTT5 est rétrocompatible avec MQTT 3.1.1, donc si vous exécutez le broker Moquette MQTT 3.1.1, vous pouvez le remplacer par le broker EMQX MQTT 5, et les appareils clients peuvent continuer à se connecter et à fonctionner comme d'habitude.
Les appareils clients sont des appareils IoT locaux qui se connectent à un appareil principal de Greengrass pour envoyer MQTT des messages et des données à traiter. Pour de plus amples informations, veuillez consulter Interagissez avec les appareils IoT locaux.
Versions
Les versions de ce composant sont les suivantes :
Type
Ce composant est un composant générique (aws.greengrass.generic
). Le noyau Greengrass exécute les scripts de cycle de vie du composant.
Pour de plus amples informations, veuillez consulter Types de composants.
Système d’exploitation
Ce composant peut être installé sur les appareils principaux qui exécutent les systèmes d'exploitation suivants :
Prérequis
Ce composant répond aux exigences suivantes :
-
Le périphérique principal doit être en mesure d'accepter des connexions sur le port où opère le MQTT broker. Ce composant exécute le MQTT broker sur le port 8883 par défaut. Vous pouvez spécifier un port différent lorsque vous configurez ce composant.
Si vous spécifiez un port différent et que vous utilisez le composant MQTT pont pour relayer MQTT des messages à d'autres courtiers, vous devez utiliser le MQTT pont v2.1.0 ou version ultérieure. Configurez-le pour utiliser le port sur lequel le MQTT broker opère.
Si vous spécifiez un port différent et que vous utilisez le composant de détection IP pour gérer les points de terminaison du MQTT broker, vous devez utiliser le détecteur IP v2.1.0 ou version ultérieure. Configurez-le pour signaler le port sur lequel le MQTT broker opère.
-
Sur les appareils principaux Linux, Docker est installé et configuré sur le périphérique principal :
-
Docker Engine 1.9.1 ou version ultérieure installé sur le périphérique principal de Greengrass. La version 20.10 est la dernière version vérifiée pour fonctionner avec le logiciel AWS IoT Greengrass Core. Vous devez installer Docker directement sur le périphérique principal avant de déployer des composants qui exécutent des conteneurs Docker.
-
Le daemon Docker a démarré et s'est exécuté sur le périphérique principal avant que vous ne déployiez ce composant.
-
L'utilisateur du système qui exécute ce composant doit disposer des autorisations root ou administrateur. Vous pouvez également exécuter ce composant en tant qu'utilisateur du système dans le docker
groupe et configurer l'requiresPrivileges
option de ce composant false
pour exécuter le EQMX MQTT broker sans privilèges.
-
Le composant EMQX MQTT broker est compatible pour s'exécuter dans unVPC.
-
Le composant EMQX MQTT broker n'est pas pris en charge sur la armv7
plateforme.
Dépendances
Lorsque vous déployez un composant, il déploie AWS IoT Greengrass également des versions compatibles de ses dépendances. Cela signifie que vous devez satisfaire aux exigences relatives au composant et à toutes ses dépendances pour réussir le déploiement du composant. Cette section répertorie les dépendances des versions publiées de ce composant et les contraintes de version sémantiques qui définissent les versions des composants pour chaque dépendance. Vous pouvez également consulter les dépendances de chaque version du composant dans la AWS IoT Greengrass console. Sur la page de détails du composant, recherchez la liste des dépendances.
- 2.0.2
-
Le tableau suivant répertorie les dépendances pour la version 2.0.2 de ce composant.
- 2.0.1
-
Le tableau suivant répertorie les dépendances pour la version 2.0.1 de ce composant.
- 2.0.0
-
Le tableau suivant répertorie les dépendances pour la version 2.0.0 de ce composant.
- 1.2.2 – 1.2.3
-
Le tableau suivant répertorie les dépendances pour les versions 1.2.2 à 1.2.3 de ce composant.
- 1.2.0 and 1.2.1
-
Le tableau suivant répertorie les dépendances pour les versions 1.2.0 et 1.2.1 de ce composant.
- 1.0.0 and 1.1.0
-
Le tableau suivant répertorie les dépendances pour les versions 1.0.0 et 1.1.0 de ce composant.
Pour plus d'informations sur les dépendances des composants, consultez la référence de la recette des composants.
Configuration
- 2.0.0 - 2.0.1
-
Ce composant fournit les paramètres de configuration suivants que vous pouvez personnaliser lorsque vous déployez le composant.
Si vous utilisez la version 2 du composant MQTT 5 broker (EMQX), vous devez mettre à jour votre fichier de configuration. Les fichiers de configuration de la version 1 ne fonctionnent pas avec la version 2.
- emqxConfig
-
(Facultatif) La configuration du EMQXMQTTbroker à utiliser. Vous pouvez définir des options EMQX de configuration dans ce composant.
Lorsque vous utilisez le EMQX broker, Greengrass utilise une configuration par défaut. Cette configuration est utilisée sauf si vous la modifiez à l'aide de ce champ.
La modification des paramètres de configuration suivants entraîne le redémarrage du composant EMQX broker. Les autres modifications de configuration s'appliquent sans redémarrer le composant.
-
emqxConfig/cluster
-
emqxConfig/node
-
emqxConfig/rpc
aws.greengrass.clientdevices.mqtt.EMQX
vous permet de configurer des options sensibles à la sécurité. Il s'agit notamment des TLS paramètres, de l'authentification et des fournisseurs d'autorisation. Nous avons recommandé la configuration par défaut qui utilise TLS l'authentification mutuelle et le fournisseur d'authentification des appareils clients Greengrass.
Exemple : configuration par défaut
L'exemple suivant montre les valeurs par défaut définies pour le courtier MQTT 5 (EMQX). Vous pouvez remplacer ces paramètres à l'aide du paramètre emqxConfig
de configuration.
{
"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
-
(Facultatif) Définit le fournisseur d'autorisation pour le courtier. Il peut avoir l'une des valeurs suivantes :
-
enabled
— (Par défaut) Utilisez le fournisseur d'authentification et d'autorisation Greengrass.
-
bypass_on_failure
— Utilisez le fournisseur d'authentification Greengrass, puis utilisez tous les fournisseurs d'authentification restants de la chaîne de fournisseurs EMQX si Greengrass refuse l'authentification ou l'autorisation.
-
bypass
— Le fournisseur Greengrass est désactivé. L'authentification et l'autorisation sont gérées par la chaîne EMQX de fournisseurs.
requiresPrivilege
-
(Facultatif) Sur les appareils principaux Linux, vous pouvez spécifier d'exécuter le EMQX MQTT broker sans privilèges root ou administrateur. Si vous définissez cette option surfalse
, l'utilisateur du système qui exécute ce composant doit être membre du docker
groupe.
Par défaut : true
startupTimeoutSeconds
-
(Facultatif) Durée maximale en secondes pendant laquelle le EMQX MQTT courtier démarre. L'état du composant change BROKEN
s'il dépasse ce délai.
Par défaut : 90
ipcTimeoutSeconds
-
(Facultatif) Durée maximale en secondes pendant laquelle le composant attend que le noyau Greengrass réponde aux demandes de communication interprocessus ()IPC. Augmentez ce nombre si ce composant signale des erreurs de temporisation lorsqu'il vérifie si un appareil client est autorisé.
Par défaut : 5
crtLogLevel
-
(Facultatif) Le niveau de journalisation de la bibliothèque AWS Common Runtime (CRT).
La valeur par défaut est le niveau de connexion du EMQX MQTT courtier (log.level
inemqx
).
restartIdentifier
-
(Facultatif) Configurez cette option pour redémarrer le EMQX MQTT broker. Lorsque cette valeur de configuration change, ce composant redémarre le MQTT broker. Vous pouvez utiliser cette option pour forcer les appareils clients à se déconnecter.
dockerOptions
-
(Facultatif) Configurez cette option uniquement sur les systèmes d'exploitation Linux pour ajouter des paramètres à la ligne de commande Docker. Par exemple, pour mapper des ports supplémentaires, utilisez le paramètre -p
Docker :
"-p 1883:1883"
Exemple : mise à jour d'un fichier de configuration v1.x vers la version 2.x
L'exemple suivant montre les modifications nécessaires pour mettre à jour un fichier de configuration v1.x vers la version 2.x.
Le fichier de configuration de la version 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"
}
}
Le fichier de configuration équivalent pour la v2 :
{
"emqxConfig": {
"listeners": {
"ssl": {
"default": {
"bind": "8883",
"max_connections": "1024000",
"max_conn_rate": "500",
"handshake_timeout": "15s"
}
}
},
"log": {
"console": {
"enable": true,
"level": "warning"
}
}
},
"authMode": "enabled"
}
Il n'existe aucun équivalent à l'entrée listener.ssl.external.rate_limit
de configuration. L'option use_greengrass_managed_certificates
de configuration a été supprimée.
Exemple : définir un nouveau port pour le courtier
Dans l'exemple suivant, le port sur lequel le MQTT broker opère passe du port par défaut 8883 au port 1234. Si vous utilisez Linux, incluez le dockerOptions
champ.
{
"emqxConfig": {
"listeners": {
"ssl": {
"default": {
"bind": 1234
}
}
}
},
"dockerOptions": "-p 1234:1234"
}
Exemple : ajuster le niveau de journalisation du MQTT courtier
L'exemple suivant change le niveau de journalisation du MQTT courtier endebug
. Vous pouvez choisir l'un des niveaux de journalisation suivants :
-
debug
-
info
-
notice
-
warning
-
error
-
critical
-
alert
-
emergency
Le niveau de journalisation par défaut estwarning
.
{
"emqxConfig": {
"log": {
"console": {
"level": "debug"
}
}
}
}
Exemple : activer le EMQX tableau de bord
L'exemple suivant active le EMQX tableau de bord afin que vous puissiez surveiller et gérer votre courtier. Si vous utilisez Linux, incluez le dockerOptions
champ.
{
"emqxConfig": {
"dashboard": {
"listeners": {
"http": {
"bind": 18083
}
}
}
},
"dockerOptions": "-p 18083:18083"
}
- 1.0.0 - 1.2.2
-
Ce composant fournit les paramètres de configuration suivants que vous pouvez personnaliser lorsque vous déployez le composant.
emqx
-
(Facultatif) La configuration du EMQXMQTTbroker à utiliser. Vous pouvez configurer un sous-ensemble d'options de EMQX configuration dans ce composant.
Cet objet contient les informations suivantes :
listener.ssl.external
-
(Facultatif) Port sur lequel opère le MQTT broker.
Si vous spécifiez un port différent et que vous utilisez le composant MQTT pont pour relayer MQTT des messages à d'autres courtiers, vous devez utiliser le MQTT pont v2.1.0 ou version ultérieure. Configurez-le pour utiliser le port sur lequel le MQTT broker opère.
Si vous spécifiez un port différent et que vous utilisez le composant de détection IP pour gérer les points de terminaison du MQTT broker, vous devez utiliser le détecteur IP v2.1.0 ou version ultérieure. Configurez-le pour signaler le port sur lequel le MQTT broker opère.
Par défaut : 8883
listener.ssl.external.max_connections
-
(Facultatif) Nombre maximal de connexions simultanées prises en charge par le MQTT broker.
Par défaut : 1024000
listener.ssl.external.max_conn_rate
-
(Facultatif) Le nombre maximum de nouvelles connexions par seconde que le MQTT courtier peut recevoir.
Par défaut : 500
listener.ssl.external.rate_limit
-
(Facultatif) Limite de bande passante pour toutes les connexions au MQTT broker. Spécifiez la bande passante et la durée de cette bande passante séparées par une virgule (,
) au format suivant :bandwidth,duration
. Par exemple, vous pouvez spécifier 50KB,5s
de limiter le MQTT broker à 50 kilo-octets (Ko) de données toutes les 5 secondes.
listener.ssl.external.handshake_timeout
-
(Facultatif) Durée pendant laquelle le MQTT courtier attend pour terminer l'authentification d'une nouvelle connexion.
Par défaut : 15s
mqtt.max_packet_size
-
(Facultatif) Taille maximale d'un MQTT message.
Par défaut : 268435455
(256 Mo moins 1)
log.level
-
(Facultatif) Le niveau de journalisation du MQTT courtier. Sélectionnez parmi les options suivantes :
-
debug
-
info
-
notice
-
warning
-
error
-
critical
-
alert
-
emergency
Le niveau de journalisation par défaut estwarning
.
requiresPrivilege
-
(Facultatif) Sur les appareils principaux Linux, vous pouvez spécifier d'exécuter le EMQX MQTT broker sans privilèges root ou administrateur. Si vous définissez cette option surfalse
, l'utilisateur du système qui exécute ce composant doit être membre du docker
groupe.
Par défaut : true
startupTimeoutSeconds
-
(Facultatif) Durée maximale en secondes pendant laquelle le EMQX MQTT courtier démarre. L'état du composant change BROKEN
s'il dépasse ce délai.
Par défaut : 90
ipcTimeoutSeconds
-
(Facultatif) Durée maximale en secondes pendant laquelle le composant attend que le noyau Greengrass réponde aux demandes de communication interprocessus ()IPC. Augmentez ce nombre si ce composant signale des erreurs de temporisation lorsqu'il vérifie si un appareil client est autorisé.
Par défaut : 5
crtLogLevel
-
(Facultatif) Le niveau de journalisation de la bibliothèque AWS Common Runtime (CRT).
La valeur par défaut est le niveau de connexion du EMQX MQTT courtier (log.level
inemqx
).
restartIdentifier
-
(Facultatif) Configurez cette option pour redémarrer le EMQX MQTT broker. Lorsque cette valeur de configuration change, ce composant redémarre le MQTT broker. Vous pouvez utiliser cette option pour forcer les appareils clients à se déconnecter.
dockerOptions
-
(Facultatif) Configurez cette option uniquement sur les systèmes d'exploitation Linux pour ajouter des paramètres à la ligne de commande Docker. Par exemple, pour mapper des ports supplémentaires, utilisez le paramètre -p
Docker :
"-p 1883:1883"
mergeConfigurationFiles
-
(Facultatif) Configurez cette option pour ajouter ou remplacer les valeurs par défaut dans les fichiers de EMQX configuration spécifiés. Pour plus d'informations sur les fichiers de configuration et leurs formats, consultez la section Configuration dans la documentation EMQX 4.0. Les valeurs que vous spécifiez sont ajoutées au fichier de configuration.
L'exemple suivant met à jour le etc/emqx.conf
fichier.
"mergeConfigurationFiles": {
"etc/emqx.conf": "broker.sys_interval=30s\nbroker.sys_heartbeat=10s"
},
Outre les fichiers de configuration pris en charge parEMQX, Greengrass prend en charge un fichier qui configure le plugin d'authentification Greengrass pour called. EMQX etc/plugins/aws_greengrass_emqx_auth.conf
Il existe deux options prises en charge, auth_mode
etuse_greengrass_managed_certificates
. Pour utiliser un autre fournisseur d'authentification, définissez l'auth_mode
option sur l'une des options suivantes :
-
enabled
— (Par défaut) Utilisez le fournisseur d'authentification et d'autorisation Greengrass.
-
bypass_on_failure
— Utilisez le fournisseur d'authentification Greengrass, puis utilisez tous les fournisseurs d'authentification restants de la chaîne de fournisseurs EMQX si Greengrass refuse l'authentification ou l'autorisation.
-
bypass
— Le fournisseur Greengrass est désactivé. L'authentification et l'autorisation sont ensuite gérées par la chaîne EMQX de fournisseurs.
Dans l'use_greengrass_managed_certificates
affirmativetrue
, cette option indique que Greengrass gère les certificats du courtierTLS. Sifalse
, cela indique que vous fournissez les certificats via une autre source.
L'exemple suivant met à jour les valeurs par défaut du fichier etc/plugins/aws_greengrass_emqx_auth.conf
de configuration.
"mergeConfigurationFiles": {
"etc/plugins/aws_greengrass_emqx_auth.conf": "auth_mode=enabled\n use_greengrass_managed_certificates=true\n"
},
aws.greengrass.clientdevices.mqtt.EMQX
vous permet de configurer des options sensibles à la sécurité. Il s'agit notamment des TLS paramètres, de l'authentification et des fournisseurs d'autorisation. La configuration recommandée est la configuration par défaut qui utilise l'TLSauthentification mutuelle et le fournisseur Greengrass Client Device Auth.
replaceConfigurationFiles
-
(Facultatif) Configurez cette option pour remplacer les fichiers EMQX de configuration spécifiés. Les valeurs que vous spécifiez remplacent l'intégralité du fichier de configuration existant. Vous ne pouvez pas spécifier le etc/emqx.conf
fichier dans cette section. Vous devez utiliser mergeConfigurationFile
pour modifieretc/emqx.conf
.
Exemple : mise à jour de la fusion de configurations
L'exemple de configuration suivant indique de faire fonctionner le MQTT broker sur le port 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"
}
Fichier journal local
Ce composant utilise le fichier journal suivant.
- Linux
-
/greengrass/v2
/logs/aws.greengrass.clientdevices.mqtt.EMQX.log
- Windows
-
C:\greengrass\v2
\logs\aws.greengrass.clientdevices.mqtt.EMQX.log
Pour consulter les journaux de ce composant
Licences
Sur les systèmes d'exploitation Windows, ce logiciel inclut du code distribué conformément aux termes du contrat de licence logiciel Microsoft - Microsoft Visual Studio Community 2022. En téléchargeant ce logiciel, vous acceptez les termes du contrat de licence de ce code.
Ce composant est publié dans le cadre du contrat de licence logicielle Greengrass Core.
Journal des modifications
Le tableau suivant décrit les modifications apportées à chaque version du composant.
- v2.x
-
Version
|
Modifications
|
2.0.2
|
- Corrections de bugs et améliorations
-
|
2.0.1
|
Version mise à jour pour la version 2.5.0 d'authentification des appareils clients.
|
2.0.0 |
Cette version du broker MQTT 5 (EMQX) attend des paramètres de configuration différents de ceux de la version 1.x. Si vous utilisez une configuration autre que celle par défaut pour la version 1.x, vous devez mettre à jour la configuration du composant pour 2.x. Pour de plus amples informations, veuillez consulter Configuration.
- Nouvelles fonctionnalités
-
- Mises à jour
-
|
- v1.x
-
Version
|
Modifications
|
1.2.3
|
- Corrections de bugs et améliorations
-
|
1.2.2
|
Version mise à jour pour la version 2.4.0 d'authentification du périphérique client.
|
1.2.1
|
- Corrections de bugs et améliorations
-
|
1.2.0
|
Ajoute la prise en charge des chaînes de certificats.
|
1.1.0
|
- Nouvelles fonctionnalités
-
- Corrections de bugs et améliorations
-
|
1.0.1
|
Résout un problème lors de la TLS poignée de main qui empêchait certains MQTT clients de se connecter.
|
1.0.0
|
Première version.
|