Relayer les messages MQTT entre les appareils clients et AWS IoT Core - 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.

Relayer les messages MQTT entre les appareils clients et AWS IoT Core

Vous pouvez relayer des messages MQTT et d'autres données entre les appareils clients etAWS IoT Core. Les appareils clients se connectent au composant du courtier MQTT qui s'exécute sur le périphérique principal. Par défaut, les appareils principaux ne relaient pas les messages ou les données MQTT entre les appareils clients etAWS IoT Core. Par défaut, les appareils clients ne peuvent communiquer qu'entre eux via MQTT.

Pour relayer des messages MQTT entre des appareils clientsAWS IoT Core, configurez le composant du pont MQTT pour effectuer les opérations suivantes :

  • Transmettre les messages des appareils clients versAWS IoT Core.

  • Transmettre les messages depuis AWS IoT Core les appareils clients vers les appareils clients.

Note

Le pont MQTT utilise QoS 1 pour publier et s'AWS IoT Coreabonner, 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, consultezConfiguration des MQTT délais d'expiration et des paramètres de cache.

Configuration et déploiement du composant de pont MQTT

Le composant du pont MQTT utilise une liste de mappages de sujets qui spécifient chacun une source et une destination de message. Pour relayer des messages entre les appareils clientsAWS IoT Core, déployez le composant du pont MQTT et spécifiez chaque sujet source et destination dans la configuration du composant.

Pour déployer le composant du pont MQTT sur un périphérique principal ou un groupe de périphériques principaux, créez un déploiement incluant le aws.greengrass.clientdevices.mqtt.Bridge composant. Spécifiez les mappages de sujetsmqttTopicMapping, dans la configuration des composants du pont MQTT lors du déploiement.

L'exemple suivant définit un déploiement qui configure le composant du pont MQTT pour relayer des messages sur des sujets qui correspondent au filtre de clients/+/hello/world sujets des appareils clients vers. AWS IoT Core La mise à jour merge de configuration nécessite un objet JSON sérialisé. Pour plus d’informations, consultez Mettre à jour les configurations des composants.

Console
{ "mqttTopicMapping": { "HelloWorldIotCore": { "topic": "clients/+/hello/world", "source": "LocalMqtt", "target": "IotCore" } } }
AWS CLI
{ "components": { "aws.greengrass.clientdevices.mqtt.Bridge": { "version": "2.0.0", "configurationUpdate": { "merge": "{\"mqttTopicMapping\":{\"HelloWorldIotCore\":{\"topic"\:\"clients/+/hello/world\",\"source\":\"LocalMqtt\",\"target\":\"IotCore\"}}}" } } ... } }

Messages MQTT relayés

Pour relayer les messages MQTT entre les appareils clientsAWS IoT Core, configurez et déployez le composant MQTT Bridge et spécifiez les sujets à relayer.

Exemple : relayer des messages sur un sujet depuis des appareils clients vers AWS IoT Core

La configuration des composants du pont MQTT suivante spécifie le relais des messages sur des sujets qui correspondent au filtre de clients/+/hello/world/event sujets, des appareils clients vers. AWS IoT Core

{ "mqttTopicMapping": { "HelloWorldEvent": { "topic": "clients/+/hello/world/event", "source": "LocalMqtt", "target": "IotCore" } } }
Exemple : relayer des messages sur un sujet depuis AWS IoT Core des appareils clients

La configuration des composants du pont MQTT suivante spécifie le relais des messages sur les sujets qui correspondent au filtre de clients/+/hello/world/event/response sujets AWS IoT Core vers les appareils clients.

{ "mqttTopicMapping": { "HelloWorldEventConfirmation": { "topic": "clients/+/hello/world/event/response", "source": "IotCore", "target": "LocalMqtt" } } }