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.
Le composant broker EMQX MQTT (aws.greengrass.clientdevices.mqtt.EMQX
) gère les messages MQTT 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
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. MQTT 5 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.
Note
Les appareils clients sont des appareils IoT locaux qui se connectent à un appareil principal de Greengrass pour envoyer des messages MQTT et des données à traiter. Pour de plus amples informations, veuillez consulter Interagissez avec les appareils IoT locaux.
Rubriques
Versions
Les versions de ce composant sont les suivantes :
-
2,0.x
-
1,2.x
-
1,1x
-
1,0 x
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 :
Linux
Windows
Prérequis
Ce composant répond aux exigences suivantes :
-
Le périphérique principal doit être capable d'accepter des connexions sur le port où fonctionne le broker MQTT. Ce composant exécute le broker MQTT 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 pont MQTT pour relayer les messages MQTT à d'autres courtiers, vous devez utiliser le pont MQTT v2.1.0 ou version ultérieure. Configurez-le pour utiliser le port sur lequel le broker MQTT fonctionne.
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 broker MQTT, vous devez utiliser le détecteur IP v2.1.0 ou version ultérieure. Configurez-le pour signaler le port sur lequel le broker MQTT fonctionne.
-
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 composantfalse
pour exécuter le courtier EQMX MQTT sans privilèges.
-
-
Le composant broker EMQX MQTT peut être exécuté dans un VPC.
-
Le composant broker EMQX MQTT n'est pas pris en charge sur la plateforme.
armv7
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
Le tableau suivant répertorie les dépendances pour la version 2.0.2 de ce composant.
Dépendance | Versions compatibles | Type de dépendance |
---|---|---|
Authentification de l'appareil client | >=2,2,0 <2,6,0 | Flexible |
Pour plus d'informations sur les dépendances des composants, consultez la référence de la recette des composants.
Configuration
Ce composant fournit les paramètres de configuration suivants que vous pouvez personnaliser lorsque vous déployez le composant.
Important
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.
- Configuration EMQX
-
(Facultatif) La configuration du broker EMQX MQTT
à utiliser. Vous pouvez définir les options de configuration EMQX dans ce composant. Lorsque vous utilisez le broker EMQX, 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 du broker EMQX. Les autres modifications de configuration s'appliquent sans redémarrer le composant.
-
emqxConfig/cluster
-
emqxConfig/node
-
emqxConfig/rpc
Note
aws.greengrass.clientdevices.mqtt.EMQX
vous permet de configurer des options sensibles à la sécurité. Il s'agit notamment des paramètres TLS, de l'authentification et des fournisseurs d'autorisation. Nous avons recommandé la configuration par défaut qui utilise l'authentification TLS 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 broker 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" } } -
- Mode Auth
-
(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 de fournisseurs EMQX.
-
requiresPrivilege
-
(Facultatif) Sur les appareils principaux Linux, vous pouvez spécifier d'exécuter le broker EMQX MQTT sans droits root ou administrateur. Si vous définissez cette option sur
false
, l'utilisateur du système qui exécute ce composant doit être membre dudocker
groupe.Par défaut :
true
startupTimeoutSeconds
-
(Facultatif) Durée maximale en secondes pendant laquelle le broker EMQX MQTT 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 journalisation du broker EMQX MQTT (in).
log.level
emqx
restartIdentifier
-
(Facultatif) Configurez cette option pour redémarrer le broker EMQX MQTT. Lorsque cette valeur de configuration change, ce composant redémarre le broker MQTT. 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 broker MQTT 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 broker MQTT
L'exemple suivant change le niveau de journalisation du broker MQTT 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 tableau de bord EMQX
L'exemple suivant active le tableau de bord EMQX 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"
}
Fichier journal local
Ce composant utilise le fichier journal suivant.
/logs/aws.greengrass.clientdevices.mqtt.EMQX.log
/greengrass/v2
Pour consulter les journaux de ce composant
-
Exécutez la commande suivante sur le périphérique principal pour afficher le fichier journal de ce composant en temps réel. Remplacez
ou/greengrass/v2
C:\greengrass\v2
par le chemin d'accès au dossier AWS IoT Greengrass racine.sudo tail -f
/logs/aws.greengrass.clientdevices.mqtt.EMQX.log/greengrass/v2
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
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.
Version |
Modifications |
---|---|
2.0.2 |
|
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.
|