Retransmitir mensagens MQTT entre dispositivos clientes e o AWS IoT Core - AWS IoT Greengrass

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Retransmitir mensagens MQTT entre dispositivos clientes e o AWS IoT Core

Você pode retransmitir mensagens MQTT e outros dados entre dispositivos cliente e o AWS IoT Core. Os dispositivos cliente se conectam ao componente do agente MQTT que é executado no dispositivo principal. Por padrão, os dispositivos principais não retransmitem mensagens ou dados do MQTT entre dispositivos clientes e o AWS IoT Core. Por padrão, os dispositivos cliente podem se comunicar somente entre si pelo MQTT.

Para retransmitir mensagens MQTT entre dispositivos clientes e o AWS IoT Core, configure o componente de ponte MQTT para fazer o seguinte:

  • Retransmita mensagens dos dispositivos do cliente para o AWS IoT Core.

  • Retransmita mensagens do AWS IoT Core para dispositivos clientes.

nota

A ponte MQTT usa QoS 1 para publicar e assinar no AWS IoT Core, mesmo quando um dispositivo cliente usa QoS 0 para publicar e assinar no agente MQTT local. Como resultado, você pode observar latência adicional ao retransmitir mensagens MQTT de dispositivos clientes no agente MQTT local para o AWS IoT Core. Para obter mais informações sobre a configuração do MQTT em dispositivos principais, consulte Definir os tempos limite do MQTT e as configurações de cache.

Configure e implante o componente de ponte MQTT

O componente de ponte MQTT consome uma lista de mapeamentos de tópicos, cada um especificando a origem e o destino da mensagem. Para retransmitir mensagens entre dispositivos clientes e AWS IoT Core, implante o componente de ponte MQTT e especifique cada tópico de origem e destino na configuração do componente.

Para implantar o componente de ponte MQTT em um dispositivo principal ou grupo de dispositivos principais, crie uma implantação que inclua o componente aws.greengrass.clientdevices.mqtt.Bridge. Especifique os mapeamentos de tópicos, mqttTopicMapping, na configuração do componente de ponte MQTT na implantação.

O exemplo a seguir define uma implantação que configura o componente de ponte MQTT para retransmitir mensagens sobre tópicos que correspondem ao filtro de tópicos clients/+/hello/world dos dispositivos do cliente para o AWS IoT Core. A atualização da configuração merge requer um objeto JSON serializado. Para obter mais informações, consulte Atualizar configurações do componente.

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\"}}}" } } ... } }

Retransmitir mensagens MQTT

Para retransmitir mensagens MQTT entre dispositivos clientes e o AWS IoT Core, configure e implante o componente de ponte MQTT e especifique os tópicos a serem retransmitidos.

exemplo Exemplo: retransmitir mensagens sobre um tópico de dispositivos clientes para AWS IoT Core

A configuração do componente de ponte MQTT a seguir especifica a retransmissão de mensagens em tópicos que correspondem ao filtro de tópicos clients/+/hello/world/event dos dispositivos cliente para o AWS IoT Core.

{ "mqttTopicMapping": { "HelloWorldEvent": { "topic": "clients/+/hello/world/event", "source": "LocalMqtt", "target": "IotCore" } } }
exemplo Exemplo: retransmitir mensagens sobre um tópico AWS IoT Core para dispositivos clientes

A configuração do componente de ponte MQTT a seguir especifica a retransmissão de mensagens em tópicos que correspondem ao filtro de tópicos clients/+/hello/world/event/response do AWS IoT Core a dispositivos clientes.

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