Pont MQTT - AWS IoT Greengrass

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.

Pont MQTT

Le composant du pont MQTT (aws.greengrass.clientdevices.mqtt.Bridge) relaie les messages MQTT entre les appareils clients, les publications et abonnements locaux de Greengrass, et. AWS IoT Core Vous pouvez utiliser ce composant pour agir sur les messages MQTT des appareils clients dans des composants personnalisés et pour synchroniser les appareils clients avec le AWS Cloud.

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 plus d’informations, consultez Interagissez avec les appareils IoT locaux.

Vous pouvez utiliser ce composant pour relayer des messages entre les courtiers de messages suivants :

  • MQTT local — Le courtier MQTT local gère les messages entre les appareils clients et un périphérique principal.

  • Publication/abonnement locaux — Le courtier de messages Greengrass local gère les messages entre les composants d'un appareil principal. Pour plus d'informations sur la façon d'interagir avec ces messages dans les composants Greengrass, consultez. Publier/souscrire des messages locaux

  • AWS IoT Core — Le broker AWS IoT Core MQTT gère les messages entre les appareils IoT et les AWS Cloud destinations. Pour plus d'informations sur la façon d'interagir avec ces messages dans les composants Greengrass, consultez. Publier/souscrire AWS IoT Core des messages MQTT

    Note

    Le pont MQTT utilise QoS 1 pour publier et s' AWS IoT Core abonner, même lorsqu'un appareil client utilise QoS 0 pour publier et s'abonner au courtier MQTT local. Par conséquent, vous pouvez observer une latence supplémentaire lorsque vous relayez des messages MQTT depuis des appareils clients sur le broker MQTT local vers. AWS IoT Core Pour plus d'informations sur la configuration MQTT sur les appareils principaux, consultezConfigurer les délais d'expiration et les paramètres de cache du MQTT.

Versions

Les versions de ce composant sont les suivantes :

  • 2.3.x

  • 2.2.x

  • 2,1x

  • 2,0.x

Type

Ce composant est un composant de plugin (aws.greengrass.plugin). Le noyau Greengrass exécute ce composant dans la même machine virtuelle Java (JVM) que le noyau. Le noyau redémarre lorsque vous modifiez la version de ce composant sur le périphérique principal.

Ce composant utilise le même fichier journal que le noyau Greengrass. Pour plus d’informations, consultez AWS IoT GreengrassJournaux de surveillance.

Pour plus d’informations, consultez 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 :

  • Si vous configurez le composant broker MQTT du périphérique principal pour utiliser un port autre que le port par défaut 8883, vous devez utiliser le pont MQTT v2.1.0 ou version ultérieure. Configurez-le pour qu'il se connecte au port sur lequel le broker opère.

  • Le composant de pont MQTT peut être exécuté dans un VPC.

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.3.2

Le tableau suivant répertorie les dépendances pour la version 2.3.2 de ce composant.

Dépendance Versions compatibles Type de dépendance
Authentification de l'appareil client >=2,2,0 <2,6,0 Stricte
2.3.0 and 2.3.1

Le tableau suivant répertorie les dépendances pour les versions 2.3.0 et 2.3.1 de ce composant.

Dépendance Versions compatibles Type de dépendance
Authentification de l'appareil client >=2,2,0 <2,5,0 Stricte
2.2.5 and 2.2.6

Le tableau suivant répertorie les dépendances pour les versions 2.2.5 et 2.2.6 de ce composant.

Dépendance Versions compatibles Type de dépendance
Authentification de l'appareil client >=2,2,0 <2,5,0 Stricte
2.2.3 and 2.2.4

Le tableau suivant répertorie les dépendances pour les versions 2.2.3 et 2.2.4 de ce composant.

Dépendance Versions compatibles Type de dépendance
Authentification de l'appareil client >=2,2,0 <2,4,0 Stricte
2.2.0 – 2.2.2

Le tableau suivant répertorie les dépendances pour les versions 2.2.0 à 2.2.2 de ce composant.

Dépendance Versions compatibles Type de dépendance
Authentification de l'appareil client >=2,2,0 <2,3,0 Stricte
2.1.1

Le tableau suivant répertorie les dépendances pour la version 2.1.1 de ce composant.

Dépendance Versions compatibles Type de dépendance
Authentification de l'appareil client >=2,0.0 <2,2.0 Stricte
2.0.0 to 2.1.0

Le tableau suivant répertorie les dépendances pour les versions 2.0.0 à 2.1.0 de ce composant.

Dépendance Versions compatibles Type de dépendance
Authentification de l'appareil client >=2,0.0 <2,10 Stricte

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.

2.3.0 – 2.3.2
mqttTopicMapping

Les mappages de sujets que vous souhaitez relier. Ce composant s'abonne aux messages du sujet source et publie les messages qu'il reçoit dans le sujet de destination. Chaque mappage de rubrique définit le sujet, le type de source et le type de destination.

Cet objet contient les informations suivantes :

topicMappingNameKey

Nom de ce mappage de rubriques. Remplacez topicMappingNameKey par un nom qui vous aide à identifier ce mappage de rubriques.

Cet objet contient les informations suivantes :

topic

Le sujet ou le filtre de sujet permettant de faire le lien entre les courtiers source et cible.

Vous pouvez utiliser les caractères génériques de sujet + et # MQTT pour relayer des messages sur tous les sujets correspondant à un filtre de sujet. Pour plus d'informations, consultez les rubriques relatives au MQTT dans le Guide du AWS IoT Core développeur.

targetTopicPrefix

Le préfixe à ajouter au sujet cible lorsque ce composant relaie le message.

source

Le courtier de messages source. Sélectionnez parmi les options suivantes :

  • LocalMqtt— Le broker MQTT local où les appareils clients communiquent.

  • Pubsub— Le courtier de messages Greengrass local pour publier/souscrire.

  • IotCore— Le courtier de messages AWS IoT Core MQTT.

    Note

    Le pont MQTT utilise QoS 1 pour publier et s' AWS IoT Core abonner, même lorsqu'un appareil client utilise QoS 0 pour publier et s'abonner au courtier MQTT local. Par conséquent, vous pouvez observer une latence supplémentaire lorsque vous relayez des messages MQTT depuis des appareils clients sur le broker MQTT local vers. AWS IoT Core Pour plus d'informations sur la configuration MQTT sur les appareils principaux, consultezConfigurer les délais d'expiration et les paramètres de cache du MQTT.

sourceet target doit être différent.

target

Le courtier de messages cible. Sélectionnez parmi les options suivantes :

  • LocalMqtt— Le broker MQTT local où les appareils clients communiquent.

  • Pubsub— Le courtier de messages Greengrass local pour publier/souscrire.

  • IotCore— Le courtier de messages AWS IoT Core MQTT.

    Note

    Le pont MQTT utilise QoS 1 pour publier et s' AWS IoT Core abonner, même lorsqu'un appareil client utilise QoS 0 pour publier et s'abonner au courtier MQTT local. Par conséquent, vous pouvez observer une latence supplémentaire lorsque vous relayez des messages MQTT depuis des appareils clients sur le broker MQTT local vers. AWS IoT Core Pour plus d'informations sur la configuration MQTT sur les appareils principaux, consultezConfigurer les délais d'expiration et les paramètres de cache du MQTT.

sourceet target doit être différent.

mqtt5 RouteOptions

(Facultatif) Fournit des options pour configurer les mappages de rubriques afin de relier les messages entre le sujet source et le sujet de destination.

Cet objet contient les informations suivantes :

mqtt5 RouteOptionsNameKey

Nom des options d'itinéraire pour le mappage d'un sujet. Remplacez mqtt5 RouteOptionsNameKey par la topicMappingNameclé correspondante définie dans le mqttTopicMapping champ.

Cet objet contient les informations suivantes :

Pas de local

(Facultatif) Lorsqu'il est activé, le pont ne transmet pas de messages sur un sujet qu'il a lui-même publié. Utilisez-le pour éviter les boucles, comme suit :

{ "mqtt5RouteOptions": { "toIoTCore": { "noLocal": true } }, "mqttTopicMapping": { "toIoTCore": { "topic": "device", "source": "LocalMqtt", "target": "IotCore" }, "toLocal": { "topic": "device", "source": "IotCore", "target": "LocalMqtt" } } }

noLocaln'est pris en charge que pour les itinéraires où le source estLocalMqtt.

Valeur par défaut : false

retainAsPublished

(Facultatif) Lorsque cette option est activée, les messages transférés par le pont ont le même retain drapeau que les messages publiés au courtier pour cette route.

retainAsPublishedn'est pris en charge que pour les itinéraires où le source estLocalMqtt.

Valeur par défaut : false

mqtt

(Facultatif) Paramètres du protocole MQTT pour communiquer avec le courtier local.

version

(Facultatif) Version du protocole MQTT utilisée par le pont pour communiquer avec le courtier local. Doit être identique à la version MQTT sélectionnée dans la configuration du noyau.

Choisissez parmi les options suivantes :

  • mqtt3

  • mqtt5

Vous devez déployer un broker MQTT lorsque le target champ source ou de l'mqttTopicMappingobjet est défini sur. LocalMqtt Si vous choisissez mqtt5 cette option, vous devez utiliser leCourtier MQTT 5 (EMQX).

Par défaut : mqtt3

ackTimeoutSeconds

(Facultatif) Intervalle de temps nécessaire pour attendre les paquets PUBACK, SUBACK ou UNSUBACK avant l'échec de l'opération.

Par défaut : 60

connAckTimeoutMme

(Facultatif) Intervalle de temps pendant lequel un paquet CONNACK doit être attendu avant d'arrêter la connexion.

Par défaut : 20000 (20 secondes)

pingTimeoutMs

(Facultatif) Durée en millisecondes pendant laquelle le pont attend de recevoir un message PINGACK du courtier local. Si le délai d'attente dépasse le délai imparti, le pont se ferme puis rouvre la connexion MQTT. Cette valeur doit être inférieure àkeepAliveTimeoutSeconds.

Par défaut : 30000 (30 secondes)

keepAliveTimeoutSecondes

(Facultatif) Durée en secondes entre chaque message PING envoyé par le pont pour maintenir la connexion MQTT active. Cette valeur doit être supérieure àpingTimeoutMs.

Par défaut : 60

maxReconnectDelayMme

(Facultatif) Durée maximale en secondes pendant laquelle MQTT se reconnecte.

Par défaut : 30000 (30 secondes)

minReconnectDelayMme

(Facultatif) Durée minimale en secondes pendant laquelle MQTT se reconnecte.

Recevez au maximum

(Facultatif) Le nombre maximum de paquets QoS1 non reconnus que le pont peut envoyer.

Par défaut : 100

maximumPacketSize

Le nombre maximum d'octets que le client acceptera pour un paquet MQTT.

Par défaut : null (aucune limite)

sessionExpiryInterval

(Facultatif) Durée en secondes pendant laquelle vous pouvez demander la durée d'une session entre le pont et le courtier local.

Par défaut : 4294967295 (la session n'expire jamais)

brokerUri

(Facultatif) L'URI du broker MQTT local. Vous devez spécifier ce paramètre si vous configurez le broker MQTT pour utiliser un port différent du port par défaut 8883. Utilisez le format suivant, et remplacez le port par le port sur lequel le broker MQTT opère : ssl://localhost:port

Par défaut : ssl://localhost:8883

startupTimeoutSeconds

(Facultatif) Durée maximale en secondes pendant laquelle le composant démarre. L'état du composant change BROKEN s'il dépasse ce délai.

Par défaut : 120

Exemple : mise à jour de la fusion de configurations

L'exemple de mise à jour de configuration suivant spécifie les éléments suivants :

  • Transférez les messages des appareils clients vers AWS IoT Core des sujets correspondant au filtre de clients/+/hello/world sujets.

  • Transférez les messages des appareils clients vers des publications et des abonnements locaux sur des sujets qui correspondent au filtre de clients/+/detections sujet, et ajoutez le events/input/ préfixe au sujet cible. Le sujet cible obtenu correspond au filtre de events/input/clients/+/detections sujet.

  • Transférez les messages des appareils clients vers AWS IoT Core des sujets correspondant au filtre de clients/+/status sujet et ajoutez le $aws/rules/StatusUpdateRule/ préfixe au sujet cible. Cet exemple transmet ces messages directement à une AWS IoT règle nommée pour réduire les coûts StatusUpdateRule à l'aide de Basic Ingest.

{ "mqttTopicMapping": { "ClientDeviceHelloWorld": { "topic": "clients/+/hello/world", "source": "LocalMqtt", "target": "IotCore" }, "ClientDeviceEvents": { "topic": "clients/+/detections", "targetTopicPrefix": "events/input/", "source": "LocalMqtt", "target": "Pubsub" }, "ClientDeviceCloudStatusUpdate": { "topic": "clients/+/status", "targetTopicPrefix": "$aws/rules/StatusUpdateRule/", "source": "LocalMqtt", "target": "IotCore" } } }
Exemple : Configuration de MQTT 5

L'exemple de configuration suivant met à jour les éléments suivants :

  • Permet au pont d'utiliser le protocole MQTT 5 avec le courtier local.

  • Configure la conservation du MQTT en tant que paramètre publié pour le mappage des ClientDeviceHelloWorld rubriques.

{ "mqttTopicMapping": { "ClientDeviceHelloWorld": { "topic": "clients/+/hello/world", "source": "LocalMqtt", "target": "IotCore" } }, "mqtt5RouteOptions": { "ClientDeviceHelloWorld": { "retainAsPublished": true } }, "mqtt": { "version": "mqtt5" } }
2.2.6
mqttTopicMapping

Les mappages de sujets que vous souhaitez relier. Ce composant s'abonne aux messages du sujet source et publie les messages qu'il reçoit dans le sujet de destination. Chaque mappage de rubrique définit le sujet, le type de source et le type de destination.

Cet objet contient les informations suivantes :

topicMappingNameKey

Nom de ce mappage de rubriques. Remplacez topicMappingNameKey par un nom qui vous aide à identifier ce mappage de rubriques.

Cet objet contient les informations suivantes :

topic

Le sujet ou le filtre de sujet permettant de faire le lien entre les courtiers source et cible.

Vous pouvez utiliser les caractères génériques de sujet + et # MQTT pour relayer des messages sur tous les sujets correspondant à un filtre de sujet. Pour plus d'informations, consultez les rubriques relatives au MQTT dans le Guide du AWS IoT Core développeur.

targetTopicPrefix

Le préfixe à ajouter au sujet cible lorsque ce composant relaie le message.

source

Le courtier de messages source. Sélectionnez parmi les options suivantes :

  • LocalMqtt— Le broker MQTT local où les appareils clients communiquent.

  • Pubsub— Le courtier de messages Greengrass local pour publier/souscrire.

  • IotCore— Le courtier de messages AWS IoT Core MQTT.

    Note

    Le pont MQTT utilise QoS 1 pour publier et s' AWS IoT Core abonner, même lorsqu'un appareil client utilise QoS 0 pour publier et s'abonner au courtier MQTT local. Par conséquent, vous pouvez observer une latence supplémentaire lorsque vous relayez des messages MQTT depuis des appareils clients sur le broker MQTT local vers. AWS IoT Core Pour plus d'informations sur la configuration MQTT sur les appareils principaux, consultezConfigurer les délais d'expiration et les paramètres de cache du MQTT.

sourceet target doit être différent.

target

Le courtier de messages cible. Sélectionnez parmi les options suivantes :

  • LocalMqtt— Le broker MQTT local où les appareils clients communiquent.

  • Pubsub— Le courtier de messages Greengrass local pour publier/souscrire.

  • IotCore— Le courtier de messages AWS IoT Core MQTT.

    Note

    Le pont MQTT utilise QoS 1 pour publier et s' AWS IoT Core abonner, même lorsqu'un appareil client utilise QoS 0 pour publier et s'abonner au courtier MQTT local. Par conséquent, vous pouvez observer une latence supplémentaire lorsque vous relayez des messages MQTT depuis des appareils clients sur le broker MQTT local vers. AWS IoT Core Pour plus d'informations sur la configuration MQTT sur les appareils principaux, consultezConfigurer les délais d'expiration et les paramètres de cache du MQTT.

sourceet target doit être différent.

brokerUri

(Facultatif) L'URI du broker MQTT local. Vous devez spécifier ce paramètre si vous configurez le broker MQTT pour utiliser un port différent du port par défaut 8883. Utilisez le format suivant, et remplacez le port par le port sur lequel le broker MQTT opère : ssl://localhost:port

Par défaut : ssl://localhost:8883

startupTimeoutSeconds

(Facultatif) Durée maximale en secondes pendant laquelle le composant démarre. L'état du composant change BROKEN s'il dépasse ce délai.

Par défaut : 120

Exemple : mise à jour de la fusion de configurations

L'exemple de mise à jour de configuration suivant spécifie les éléments suivants :

  • Transférez les messages des appareils clients vers AWS IoT Core des sujets correspondant au filtre de clients/+/hello/world sujets.

  • Transférez les messages des appareils clients vers des publications et des abonnements locaux sur des sujets qui correspondent au filtre de clients/+/detections sujet, et ajoutez le events/input/ préfixe au sujet cible. Le sujet cible obtenu correspond au filtre de events/input/clients/+/detections sujet.

  • Transférez les messages des appareils clients vers AWS IoT Core des sujets correspondant au filtre de clients/+/status sujet et ajoutez le $aws/rules/StatusUpdateRule/ préfixe au sujet cible. Cet exemple transmet ces messages directement à une AWS IoT règle nommée pour réduire les coûts StatusUpdateRule à l'aide de Basic Ingest.

{ "mqttTopicMapping": { "ClientDeviceHelloWorld": { "topic": "clients/+/hello/world", "source": "LocalMqtt", "target": "IotCore" }, "ClientDeviceEvents": { "topic": "clients/+/detections", "targetTopicPrefix": "events/input/", "source": "LocalMqtt", "target": "Pubsub" }, "ClientDeviceCloudStatusUpdate": { "topic": "clients/+/status", "targetTopicPrefix": "$aws/rules/StatusUpdateRule/", "source": "LocalMqtt", "target": "IotCore" } } }
2.2.0 - 2.2.5
mqttTopicMapping

Les mappages de sujets que vous souhaitez relier. Ce composant s'abonne aux messages du sujet source et publie les messages qu'il reçoit dans le sujet de destination. Chaque mappage de rubrique définit le sujet, le type de source et le type de destination.

Cet objet contient les informations suivantes :

topicMappingNameKey

Nom de ce mappage de rubriques. Remplacez topicMappingNameKey par un nom qui vous aide à identifier ce mappage de rubriques.

Cet objet contient les informations suivantes :

topic

Le sujet ou le filtre de sujet permettant de faire le lien entre les courtiers source et cible.

Vous pouvez utiliser les caractères génériques de sujet + et # MQTT pour relayer des messages sur tous les sujets correspondant à un filtre de sujet. Pour plus d'informations, consultez les rubriques relatives au MQTT dans le Guide du AWS IoT Core développeur.

targetTopicPrefix

Le préfixe à ajouter au sujet cible lorsque ce composant relaie le message.

source

Le courtier de messages source. Sélectionnez parmi les options suivantes :

  • LocalMqtt— Le broker MQTT local où les appareils clients communiquent.

  • Pubsub— Le courtier de messages Greengrass local pour publier/souscrire.

  • IotCore— Le courtier de messages AWS IoT Core MQTT.

    Note

    Le pont MQTT utilise QoS 1 pour publier et s' AWS IoT Core abonner, même lorsqu'un appareil client utilise QoS 0 pour publier et s'abonner au courtier MQTT local. Par conséquent, vous pouvez observer une latence supplémentaire lorsque vous relayez des messages MQTT depuis des appareils clients sur le broker MQTT local vers. AWS IoT Core Pour plus d'informations sur la configuration MQTT sur les appareils principaux, consultezConfigurer les délais d'expiration et les paramètres de cache du MQTT.

sourceet target doit être différent.

target

Le courtier de messages cible. Sélectionnez parmi les options suivantes :

  • LocalMqtt— Le broker MQTT local où les appareils clients communiquent.

  • Pubsub— Le courtier de messages Greengrass local pour publier/souscrire.

  • IotCore— Le courtier de messages AWS IoT Core MQTT.

    Note

    Le pont MQTT utilise QoS 1 pour publier et s' AWS IoT Core abonner, même lorsqu'un appareil client utilise QoS 0 pour publier et s'abonner au courtier MQTT local. Par conséquent, vous pouvez observer une latence supplémentaire lorsque vous relayez des messages MQTT depuis des appareils clients sur le broker MQTT local vers. AWS IoT Core Pour plus d'informations sur la configuration MQTT sur les appareils principaux, consultezConfigurer les délais d'expiration et les paramètres de cache du MQTT.

sourceet target doit être différent.

brokerUri

(Facultatif) L'URI du broker MQTT local. Vous devez spécifier ce paramètre si vous configurez le broker MQTT pour utiliser un port différent du port par défaut 8883. Utilisez le format suivant, et remplacez le port par le port sur lequel le broker MQTT opère : ssl://localhost:port

Par défaut : ssl://localhost:8883

Exemple : mise à jour de la fusion de configurations

L'exemple de mise à jour de configuration suivant spécifie les éléments suivants :

  • Transférez les messages des appareils clients vers AWS IoT Core des sujets correspondant au filtre de clients/+/hello/world sujets.

  • Transférez les messages des appareils clients vers des publications et des abonnements locaux sur des sujets qui correspondent au filtre de clients/+/detections sujet, et ajoutez le events/input/ préfixe au sujet cible. Le sujet cible obtenu correspond au filtre de events/input/clients/+/detections sujet.

  • Transférez les messages des appareils clients vers AWS IoT Core des sujets correspondant au filtre de clients/+/status sujet et ajoutez le $aws/rules/StatusUpdateRule/ préfixe au sujet cible. Cet exemple transmet ces messages directement à une AWS IoT règle nommée pour réduire les coûts StatusUpdateRule à l'aide de Basic Ingest.

{ "mqttTopicMapping": { "ClientDeviceHelloWorld": { "topic": "clients/+/hello/world", "source": "LocalMqtt", "target": "IotCore" }, "ClientDeviceEvents": { "topic": "clients/+/detections", "targetTopicPrefix": "events/input/", "source": "LocalMqtt", "target": "Pubsub" }, "ClientDeviceCloudStatusUpdate": { "topic": "clients/+/status", "targetTopicPrefix": "$aws/rules/StatusUpdateRule/", "source": "LocalMqtt", "target": "IotCore" } } }
2.1.x
mqttTopicMapping

Les mappages de sujets que vous souhaitez relier. Ce composant s'abonne aux messages du sujet source et publie les messages qu'il reçoit dans le sujet de destination. Chaque mappage de rubrique définit le sujet, le type de source et le type de destination.

Cet objet contient les informations suivantes :

topicMappingNameKey

Nom de ce mappage de rubriques. Remplacez topicMappingNameKey par un nom qui vous aide à identifier ce mappage de rubriques.

Cet objet contient les informations suivantes :

topic

Le sujet ou le filtre de sujet permettant de faire le lien entre les courtiers source et cible.

Si vous spécifiez le courtier LocalMqtt ou le courtier IotCore source, vous pouvez utiliser les caractères génériques de sujet + et # MQTT pour relayer des messages sur tous les sujets correspondant à un filtre de sujet. Pour plus d'informations, consultez les rubriques relatives au MQTT dans le Guide du AWS IoT Core développeur.

source

Le courtier de messages source. Sélectionnez parmi les options suivantes :

  • LocalMqtt— Le broker MQTT local où les appareils clients communiquent.

  • Pubsub— Le courtier de messages Greengrass local pour publier/souscrire.

  • IotCore— Le courtier de messages AWS IoT Core MQTT.

    Note

    Le pont MQTT utilise QoS 1 pour publier et s' AWS IoT Core abonner, même lorsqu'un appareil client utilise QoS 0 pour publier et s'abonner au courtier MQTT local. Par conséquent, vous pouvez observer une latence supplémentaire lorsque vous relayez des messages MQTT depuis des appareils clients sur le broker MQTT local vers. AWS IoT Core Pour plus d'informations sur la configuration MQTT sur les appareils principaux, consultezConfigurer les délais d'expiration et les paramètres de cache du MQTT.

sourceet target doit être différent.

target

Le courtier de messages cible. Sélectionnez parmi les options suivantes :

  • LocalMqtt— Le broker MQTT local où les appareils clients communiquent.

  • Pubsub— Le courtier de messages Greengrass local pour publier/souscrire.

  • IotCore— Le courtier de messages AWS IoT Core MQTT.

    Note

    Le pont MQTT utilise QoS 1 pour publier et s' AWS IoT Core abonner, même lorsqu'un appareil client utilise QoS 0 pour publier et s'abonner au courtier MQTT local. Par conséquent, vous pouvez observer une latence supplémentaire lorsque vous relayez des messages MQTT depuis des appareils clients sur le broker MQTT local vers. AWS IoT Core Pour plus d'informations sur la configuration MQTT sur les appareils principaux, consultezConfigurer les délais d'expiration et les paramètres de cache du MQTT.

sourceet target doit être différent.

brokerUri

(Facultatif) L'URI du broker MQTT local. Vous devez spécifier ce paramètre si vous configurez le broker MQTT pour utiliser un port différent du port par défaut 8883. Utilisez le format suivant, et remplacez le port par le port sur lequel le broker MQTT opère : ssl://localhost:port

Par défaut : ssl://localhost:8883

Exemple : mise à jour de la fusion de configurations

L'exemple de mise à jour de configuration suivant indique de relayer les messages des appareils clients vers AWS IoT Core les clients/MyClientDevice2/hello/world rubriques clients/MyClientDevice1/hello/world et.

{ "mqttTopicMapping": { "ClientDevice1HelloWorld": { "topic": "clients/MyClientDevice1/hello/world", "source": "LocalMqtt", "target": "IotCore" }, "ClientDevice2HelloWorld": { "topic": "clients/MyClientDevice2/hello/world", "source": "LocalMqtt", "target": "IotCore" } } }
2.0.x
mqttTopicMapping

Les mappages de sujets que vous souhaitez relier. Ce composant s'abonne aux messages du sujet source et publie les messages qu'il reçoit dans le sujet de destination. Chaque mappage de rubrique définit le sujet, le type de source et le type de destination.

Cet objet contient les informations suivantes :

topicMappingNameKey

Nom de ce mappage de rubriques. Remplacez topicMappingNameKey par un nom qui vous aide à identifier ce mappage de rubriques.

Cet objet contient les informations suivantes :

topic

Le sujet ou le filtre de sujet permettant de faire le lien entre les courtiers source et cible.

Si vous spécifiez le courtier LocalMqtt ou le courtier IotCore source, vous pouvez utiliser les caractères génériques de sujet + et # MQTT pour relayer des messages sur tous les sujets correspondant à un filtre de sujet. Pour plus d'informations, consultez les rubriques relatives au MQTT dans le Guide du AWS IoT Core développeur.

source

Le courtier de messages source. Sélectionnez parmi les options suivantes :

  • LocalMqtt— Le broker MQTT local où les appareils clients communiquent.

  • Pubsub— Le courtier de messages Greengrass local pour publier/souscrire.

  • IotCore— Le courtier de messages AWS IoT Core MQTT.

    Note

    Le pont MQTT utilise QoS 1 pour publier et s' AWS IoT Core abonner, même lorsqu'un appareil client utilise QoS 0 pour publier et s'abonner au courtier MQTT local. Par conséquent, vous pouvez observer une latence supplémentaire lorsque vous relayez des messages MQTT depuis des appareils clients sur le broker MQTT local vers. AWS IoT Core Pour plus d'informations sur la configuration MQTT sur les appareils principaux, consultezConfigurer les délais d'expiration et les paramètres de cache du MQTT.

sourceet target doit être différent.

target

Le courtier de messages cible. Sélectionnez parmi les options suivantes :

  • LocalMqtt— Le broker MQTT local où les appareils clients communiquent.

  • Pubsub— Le courtier de messages Greengrass local pour publier/souscrire.

  • IotCore— Le courtier de messages AWS IoT Core MQTT.

    Note

    Le pont MQTT utilise QoS 1 pour publier et s' AWS IoT Core abonner, même lorsqu'un appareil client utilise QoS 0 pour publier et s'abonner au courtier MQTT local. Par conséquent, vous pouvez observer une latence supplémentaire lorsque vous relayez des messages MQTT depuis des appareils clients sur le broker MQTT local vers. AWS IoT Core Pour plus d'informations sur la configuration MQTT sur les appareils principaux, consultezConfigurer les délais d'expiration et les paramètres de cache du MQTT.

sourceet target doit être différent.

Exemple : mise à jour de la fusion de configurations

L'exemple de mise à jour de configuration suivant indique de relayer les messages des appareils clients vers AWS IoT Core les clients/MyClientDevice2/hello/world rubriques clients/MyClientDevice1/hello/world et.

{ "mqttTopicMapping": { "ClientDevice1HelloWorld": { "topic": "clients/MyClientDevice1/hello/world", "source": "LocalMqtt", "target": "IotCore" }, "ClientDevice2HelloWorld": { "topic": "clients/MyClientDevice2/hello/world", "source": "LocalMqtt", "target": "IotCore" } } }

Fichier journal local

Ce composant utilise le même fichier journal que le composant Greengrass nucleus.

Linux
/greengrass/v2/logs/greengrass.log
Windows
C:\greengrass\v2\logs\greengrass.log
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 /greengrass/v2 C:\greengrass\v2 par le chemin d'accès au dossier AWS IoT Greengrass racine.

    Linux
    sudo tail -f /greengrass/v2/logs/greengrass.log
    Windows (PowerShell)
    Get-Content C:\greengrass\v2\logs\greengrass.log -Tail 10 -Wait

Journal des modifications

Le tableau suivant décrit les modifications apportées à chaque version du composant.

Version

Modifications

2.3.2

Version mise à jour pour la version 2.5.0 d'authentification des appareils clients.

2.3.1
Corrections de bugs et améliorations

Résout un problème où le client MQTT local entre dans une boucle de déconnexion.

2.3.0
Nouvelles fonctionnalités

Ajoute le support MQTT5 pour le pont entre les sources MQTT AWS IoT Core et locales.

2.2.6

Nouvelles fonctionnalités

Ajoute une nouvelle option startupTimeoutSeconds de configuration.

2.2.5

Version mise à jour pour la version 2.4.0 d'authentification du périphérique client.

2.2.4

Version mise à jour pour la version 2.3.0 d'authentification des appareils clients Greengrass.

2.2.3

Cette version contient des corrections de bogues et des améliorations.

2.2.2

Corrections de bugs et améliorations
  • Ajustements de journalisation.

2.2.1

Corrections de bugs et améliorations

Résout les problèmes qui peuvent empêcher le pont MQTT de s'abonner aux rubriques MQTT.

2.2.0

Nouvelles fonctionnalités
  • Ajoute la prise en charge des caractères génériques des rubriques MQTT (#et+) lorsque vous spécifiez la publication ou l'abonnement local comme courtier de messages source.

    Cette fonctionnalité nécessite la version 2.6.0 ou ultérieure du composant Greengrass nucleus.

  • Ajoute l'targetTopicPrefixoption, que vous pouvez spécifier pour configurer le pont MQTT afin d'ajouter un préfixe au sujet cible lorsqu'il relaie un message.

2.1.1

Corrections de bugs et améliorations
  • Résout les problèmes liés à la façon dont ce composant gère les mises à jour de réinitialisation de configuration.

  • Réduit la fréquence des déconnexions du client MQTT lors de la rotation des certificats.

2.1.0

Nouvelles fonctionnalités
  • Ajoute le brokerUri paramètre, qui vous permet d'utiliser un port de broker MQTT autre que celui par défaut.

2.0.1

Cette version inclut des corrections de bogues et des améliorations.

2.0.0

Première version.