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á.
Interagir e sincronizar as sombras do dispositivo cliente
Você pode usar o componente Gerenciador de sombras para gerenciar as sombras locais, incluindo as do dispositivo cliente. Você pode usar o Gerenciador de sombras para fazer o seguinte:
-
Interagir com as sombras do dispositivo cliente nos componentes do Greengrass.
-
Sincronizar as sombras do dispositivo cliente com o AWS IoT Core.
nota
Por padrão, o componente Gerenciador de sombras não sincroniza as sombras com AWS IoT Core. Você deve configurar o componente Gerenciador de sombras para especificar as sombras do dispositivo cliente que devem ser sincronizadas.
Tópicos
Pré-requisitos
Para interagir com as sombras do dispositivo cliente e sincronizá-las com o AWS IoT Core, um dispositivo principal deve atender aos seguintes requisitos:
-
O dispositivo principal deve executar os seguintes componentes, além dos componentes do Greengrass para suporte ao dispositivo cliente:
-
Núcleo do Greengrass v2.6.0 ou posterior
-
Gerenciador de sombras v2.2.0 ou posterior
-
Ponte MQTT v2.2.0 ou posterior
-
-
O componente de autenticação do dispositivo cliente deve ser configurado para permitir que os dispositivos cliente se comuniquem pelos tópicos da sombra do dispositivo.
Habilitar o Gerenciador de sombras para comunicação com dispositivos cliente
Por padrão, o componente Gerenciador de sombras não gerencia as sombras do dispositivo cliente. Para habilitar esse recurso, você deve retransmitir as mensagens MQTT entre os dispositivos cliente e o componente Gerenciador de sombras. Os dispositivos cliente usam as mensagens MQTT para receber e enviar atualizações da sombra do dispositivo. O componente Gerenciador de sombras assina a interface local de publicação/assinatura do Greengrass para que você possa configurar o componente de ponte MQTT para retransmitir as mensagens MQTT pelos tópicos da sombra do dispositivo.
O componente de ponte MQTT consome uma lista de mapeamentos de tópicos, cada um especificando a origem e o destino da mensagem. Para permitir que o componente Gerenciador de sombras gerencie as sombras do dispositivo cliente, implante o componente de ponte MQTT e especifique os tópicos para as sombras do dispositivo cliente. Você deve configurar a ponte para retransmitir as mensagens nas duas direções entre o MQTT local e a publicação/assinatura local.
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.
Use os exemplos abaixo para configurar o componente de ponte MQTT para permitir a comunicação entre os dispositivos cliente e o componente Gerenciador de sombras.
nota
Você pode usar esses exemplos de configuração no console do AWS IoT Greengrass. Se você usa a API do AWS IoT Greengrass, a atualização de configuração merge
requer um objeto JSON serializado, portanto você deve serializar os objetos JSON a seguir em strings. Para ter mais informações, consulte Atualizar configurações do componente.
exemplo Exemplo: gerenciar todas as sombras do dispositivo cliente
O exemplo de configuração da ponte MQTT a seguir permite que o Gerenciador de sombras gerencie todas as sombras de todos os dispositivos cliente.
{ "mqttTopicMapping": { "ShadowsLocalMqttToPubsub": { "topic": "$aws/things/+/shadow/#", "source": "LocalMqtt", "target": "Pubsub" }, "ShadowsPubsubToLocalMqtt": { "topic": "$aws/things/+/shadow/#", "source": "Pubsub", "target": "LocalMqtt" } } }
exemplo Exemplo: gerenciar sombras de um dispositivo cliente
O exemplo de configuração da ponte MQTT a seguir permite que o Gerenciador de sombras gerencie todas as sombras de um dispositivo cliente chamado MyClientDevice
.
{ "mqttTopicMapping": { "ShadowsLocalMqttToPubsub": { "topic": "$aws/things/MyClientDevice/shadow/#", "source": "LocalMqtt", "target": "Pubsub" }, "ShadowsPubsubToLocalMqtt": { "topic": "$aws/things/MyClientDevice/shadow/#", "source": "Pubsub", "target": "LocalMqtt" } } }
exemplo Exemplo: gerenciar uma sombra nomeada de todos os dispositivos cliente
O exemplo de configuração da ponte MQTT a seguir permite que o Gerenciador de sombras gerencie uma sombra chamada DeviceConfiguration
de todos os dispositivos cliente.
{ "mqttTopicMapping": { "ShadowsLocalMqttToPubsub": { "topic": "$aws/things/+/shadow/name/DeviceConfiguration/#", "source": "LocalMqtt", "target": "Pubsub" }, "ShadowsPubsubToLocalMqtt": { "topic": "$aws/things/+/shadow/name/DeviceConfiguration/#", "source": "Pubsub", "target": "LocalMqtt" } } }
exemplo Exemplo: gerenciar sombras sem nome de todos os dispositivos cliente
O exemplo de configuração da ponte MQTT a seguir permite que o Gerenciador de sombras gerencie sombras sem nome, mas não sombras nomeadas, de todos os dispositivos cliente.
{ "mqttTopicMapping": { "DeleteShadowLocalMqttToPubsub": { "topic": "$aws/things/+/shadow/delete", "source": "LocalMqtt", "target": "Pubsub" }, "DeleteShadowPubsubToLocalMqtt": { "topic": "$aws/things/+/shadow/delete/#", "source": "Pubsub", "target": "LocalMqtt" }, "GetShadowLocalMqttToPubsub": { "topic": "$aws/things/+/shadow/get", "source": "LocalMqtt", "target": "Pubsub" }, "GetShadowPubsubToLocalMqtt": { "topic": "$aws/things/+/shadow/get/#", "source": "Pubsub", "target": "LocalMqtt" }, "UpdateShadowLocalMqttToPubsub": { "topic": "$aws/things/+/shadow/update", "source": "LocalMqtt", "target": "Pubsub" }, "UpdateShadowPubsubToLocalMqtt": { "topic": "$aws/things/+/shadow/update/#", "source": "Pubsub", "target": "LocalMqtt" } } }
Interagir com as sombras do dispositivo cliente em componentes
Você pode desenvolver componentes personalizados que usam o serviço de sombra local para ler e modificar os documentos de sombras locais dos dispositivos cliente. Para ter mais informações, consulte Interaja com sombras em componentes.
Sincronizar as sombras do dispositivo cliente com o AWS IoT Core
Você pode configurar o componente Gerenciador de sombras para sincronizar os estados da sombra do dispositivo cliente local com o AWS IoT Core. Para ter mais informações, consulte Sincronizar sombras do dispositivo locais com o AWS IoT Core.