

Aviso de fim do suporte: em 7 de outubro de 2026, AWS o suporte para o. AWS IoT Greengrass Version 1 Depois de 7 de outubro de 2026, você não poderá mais acessar os AWS IoT Greengrass V1 recursos. Para obter mais informações, visite [Migrar de AWS IoT Greengrass Version 1](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html).

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

# Módulo 5: Interagir com sombras de dispositivos
<a name="module5"></a>

Este módulo avançado mostra como os dispositivos cliente podem interagir com as [sombras dos AWS IoT dispositivos](https://docs.aws.amazon.com/iot/latest/developerguide/iot-device-shadows.html) em um AWS IoT Greengrass grupo. *Sombra* é um documento JSON usado para armazenar informações sobre o estado atual ou o desejado de uma coisa. Neste módulo, você aprenderá como um dispositivo cliente (`GG_Switch`) pode modificar o estado de outro dispositivo cliente (`GG_TrafficLight`), e como esses estados podem ser sincronizados com a nuvem do AWS IoT Greengrass :

![\[AWS IoT Greengrass O núcleo é conectado a uma sombra do dispositivo de semáforo e a um dispositivo de interruptor de luz.\]](http://docs.aws.amazon.com/pt_br/greengrass/v1/developerguide/images/gg-get-started-077.5.png)


Antes de começar, execute o script de [configuração do dispositivo do Greengrass](quick-start.md) ou conclua o [Módulo 1](module1.md) e o [Módulo 2](module2.md). Você também deve entender como conectar dispositivos cliente a um AWS IoT Greengrass núcleo ([Módulo 4](module4.md)). Você não precisa de outros componentes ou dispositivos.

Este modulo levará aproximadamente 30 minutos para ser concluído.

**Topics**
+ [Configurar dispositivos e assinaturas](config-dev-subs.md)
+ [Fazer download de arquivos necessários](file-download.md)
+ [Testar comunicações (sincronizações de dispositivos desativadas)](comms-disabled.md)
+ [Testar comunicações (sincronizações de dispositivos ativadas)](comms-enabled.md)

# Configurar dispositivos e assinaturas
<a name="config-dev-subs"></a>

As sombras podem ser sincronizadas com AWS IoT quando o AWS IoT Greengrass núcleo está conectado à Internet. Neste módulo, você primeiro usará sombras locais sem sincronizar com a nuvem. Em seguida, você habilita a sincronização de nuvem.

Cada dispositivo cliente tem sua própria sombra. Para obter mais informações, consulte [Serviço de sombra do dispositivo para AWS IoT](https://docs.aws.amazon.com/iot/latest/developerguide/iot-device-shadows.html) no *Guia do desenvolvedor do AWS IoT *.

1. Na página de configuração do grupo, selecione a guia **Dispositivos cliente**.

1. Na guia **Dispositivos clientes**, adicione dois novos dispositivos clientes ao seu AWS IoT Greengrass grupo. Para ver as etapas detalhadas desse processo, consulte [Crie dispositivos cliente em um AWS IoT Greengrass grupo](device-group.md).
   + Nomeie os dispositivos cliente **GG\$1Switch** e **GG\$1TrafficLight**:
   + Gere e faça download dos recursos de segurança para ambos os dispositivos cliente.
   + Anote o ID do certificado nos nomes de arquivo dos recursos de segurança para os dispositivos cliente. Você usará esses valores depois.

1. Crie uma pasta no seu computador para as credenciais de segurança desses dispositivos cliente. Copie os certificados e as chaves para essa pasta.

1. Certifique-se de que os dispositivos cliente estejam configurados para usar sombras locais e de que eles não se sincronizem com o Nuvem AWS. Caso contrário, selecione o dispositivo cliente, selecione **Sincronizar sombra** e, em seguida, selecione **Desativar sincronização da sombra com a nuvem**.

1. <a name="module5-subscriptions"></a>Adicione as assinaturas na tabela a seguir ao seu grupo. Por exemplo, para criar a primeira assinatura:

   1. Na página de configuração do grupo, selecione a guia **Inscrições** e, em seguida, selecione **Adicionar**.

   1. Em **Tipo de origem**, selecione **Dispositivo cliente** e, em seguida, selecione **GG\$1switch**.

   1. Para **Tipo de destino**, selecione **Serviço** e **Serviço de sombra local**.

   1. Em **Topic filter (Filtro de tópicos)**, insira **\$1aws/things/GG\$1TrafficLight/shadow/update**.

   1. Selecione **Create subscription**.

   Os tópicos devem ser inseridos exatamente como mostrado na tabela. Embora seja possível usar curingas para consolidar algumas das assinaturas, não recomendamos essa prática. Para obter mais informações, consulte [Tópicos da sombra MQTT](https://docs.aws.amazon.com/iot/latest/developerguide/device-shadow-mqtt.html) no *Guia do desenvolvedor do AWS IoT *.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/greengrass/v1/developerguide/config-dev-subs.html)

   As nova assinaturas são exibidas na guia **Assinaturas**.
**nota**  
Para obter informações sobre o caractere `$`, consulte [Tópicos reservados](https://docs.aws.amazon.com/iot/latest/developerguide/topics.html#reserved-topics).

1. <a name="enable-automatic-detection"></a>Certifique-se de que a detecção automática esteja habilitada para que o núcleo do Greengrass possa publicar uma lista de seus endereços IP. Os dispositivos cliente usam essa informação para descobrir o núcleo. Faça o seguinte:

   1. Na página de configuração do grupo, selecione a guia **Funções do Lambda**.

   1. Em **Funções do Lambda do sistema**, selecione **Detector de IP** e, em seguida, selecione **Editar**.

   1. Em **Editar configurações do detector de IP**, selecione **Detectar e substituir automaticamente os endpoints do broker MQTT** e, em seguida, selecione **Salvar**.

1. Verifique se o daemon do Greengrass está em execução, como descrito em [Implantar configurações de nuvem em um dispositivo de núcleo](configs-core.md).

1. <a name="console-actions-deploy"></a>Na página de configuração do grupo, selecione **Implantar**.

# Fazer download de arquivos necessários
<a name="file-download"></a>

1. Se você ainda não tiver feito isso, instale o AWS IoT Device SDK for Python. Para obter instruções, consulte a etapa 1 em [Instale o AWS IoT Device SDK para Python](IoT-SDK.md).

   Esse SDK é usado por dispositivos clientes para se comunicarem com AWS IoT e com os dispositivos AWS IoT Greengrass principais.

1. Na pasta de [ TrafficLight](https://github.com/aws/aws-greengrass-core-sdk-python/tree/master/examples/TrafficLight)exemplos GitHub, baixe os `trafficLight.py` arquivos `lightController.py` e para o seu computador. Salve-os na pasta que contém os certificados e chaves do dispositivo TrafficLight cliente GG\$1switch e GG\$1.

   O `lightController.py` script corresponde ao dispositivo cliente GG\$1Switch e o `trafficLight.py` script corresponde ao dispositivo cliente GG\$1TrafficLight .   
![\[Captura de tela de arquivos incluindo os dois scripts do Python, além de chaves e certificados de dispositivo.\]](http://docs.aws.amazon.com/pt_br/greengrass/v1/developerguide/images/gg-get-started-082.png)
**nota**  
Os arquivos Python de exemplo são armazenados no repositório AWS IoT Greengrass Core SDK for Python por conveniência, mas eles não usam o Core SDK. AWS IoT Greengrass 

# Testar comunicações (sincronizações de dispositivos desativadas)
<a name="comms-disabled"></a>

1. <a name="ping-device"></a>Verifique se o computador e o dispositivo AWS IoT Greengrass principal estão conectados à Internet usando a mesma rede.

   1. No dispositivo AWS IoT Greengrass principal, execute o comando a seguir para encontrar seu endereço IP.

      ```
      hostname -I
      ```

   1. Em seu computador, execute o comando a seguir usando o endereço IP do núcleo. Você pode usar Ctrl \$1 C para interromper o comando **ping**.

      ```
      ping IP-address
      ```

      Uma saída semelhante à seguinte indica uma comunicação bem-sucedida entre o computador e o dispositivo AWS IoT Greengrass principal (0% de perda de pacotes):  
![\[Resultado bem-sucedido do comando de ping.\]](http://docs.aws.amazon.com/pt_br/greengrass/v1/developerguide/images/gg-get-started-075.5.png)
**nota**  
Se você não conseguir fazer ping em uma EC2 instância em execução AWS IoT Greengrass, verifique se as regras do grupo de segurança de entrada da instância permitem tráfego ICMP para mensagens de solicitação do [Echo](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html#sg-rules-ping). Para obter mais informações, consulte [Adicionar regras a um grupo de segurança](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html#adding-security-group-rule) no *Guia EC2 do usuário da Amazon*.  
Em computadores host Windows, no aplicativo Firewall do Windows com Segurança Avançada, talvez você também precise habilitar uma regra de entrada que permita solicitações de eco de entrada (por exemplo, **compartilhamento de arquivos e impressoras (Echo Request - ICMPv4 -In))** ou criar uma.

1. Obtenha seu AWS IoT endpoint.

   1. <a name="iot-settings"></a>No painel de navegação do [console do AWS IoT](https://console.aws.amazon.com/iot/), selecione **Configurações**.

   1. <a name="iot-settings-endpoint"></a>Em **Endpoint de dados do dispositivo**, anote o valor do **Endpoint**. Você usa esse valor para substituir o *AWS\$1IOT\$1ENDPOINT* espaço reservado nos comandos nas etapas a seguir.
**nota**  
Certifique-se de que os [endpoints correspondem ao seu tipo de certificado](gg-core.md#certificate-endpoints).

1. <a name="repeated-step"></a>No seu computador (não no dispositivo AWS IoT Greengrass principal), abra duas janelas de [linha de comando](https://en.wikipedia.org/wiki/Command-line_interface) (terminal ou prompt de comando). Uma janela representa o dispositivo cliente GG\$1Switch e a outra representa o dispositivo cliente GG\$1TrafficLight .

   1. <a name="run-switch-device"></a>Na janela do dispositivo cliente GG\$1Switch, execute os comandos a seguir.
      + *path-to-certs-folder*Substitua pelo caminho para a pasta que contém os certificados, as chaves e os arquivos Python.
      + *AWS\$1IOT\$1ENDPOINT*Substitua pelo seu endpoint.
      + Substitua as duas *switchCertId* instâncias pelo ID do certificado no nome do arquivo do seu dispositivo cliente GG\$1Switch.

      ```
      cd path-to-certs-folder
      python lightController.py --endpoint AWS_IOT_ENDPOINT --rootCA AmazonRootCA1.pem --cert switchCertId-certificate.pem.crt --key switchCertId-private.pem.key --thingName GG_TrafficLight --clientId GG_Switch
      ```

   1. <a name="run-trafficlight-device"></a>Na janela do dispositivo TrafficLight cliente GG\$1, execute os seguintes comandos.
      + *path-to-certs-folder*Substitua pelo caminho para a pasta que contém os certificados, as chaves e os arquivos Python.
      + *AWS\$1IOT\$1ENDPOINT*Substitua pelo seu endpoint.
      + Substitua as duas *lightCertId* instâncias pelo ID do certificado no nome do arquivo do seu dispositivo TrafficLight cliente GG\$1.

      ```
      cd path-to-certs-folder
      python trafficLight.py --endpoint AWS_IOT_ENDPOINT --rootCA AmazonRootCA1.pem --cert lightCertId-certificate.pem.crt --key lightCertId-private.pem.key --thingName GG_TrafficLight --clientId GG_TrafficLight
      ```

      A cada 20 segundos, o interruptor atualiza o estado de shadow para G, Y e R, e a luz exibe seu novo estado, conforme a seguir.

      Resultado do GG\$1Switch:  
![\[Captura de tela da resultado associado ao GG_Switch.\]](http://docs.aws.amazon.com/pt_br/greengrass/v1/developerguide/images/gg-get-started-083.png)

      TrafficLight Saída GG\$1:  
![\[Captura de tela da saída associada a TrafficLight GG_.\]](http://docs.aws.amazon.com/pt_br/greengrass/v1/developerguide/images/gg-get-started-084.png)

   Quando executado pela primeira vez, cada script de dispositivo cliente executa o serviço de AWS IoT Greengrass descoberta para se conectar ao AWS IoT Greengrass núcleo (pela Internet). Depois que um dispositivo cliente é descoberto e conectado com sucesso ao AWS IoT Greengrass núcleo, as operações futuras podem ser executadas localmente.
**nota**  
<a name="check-connection-info"></a> Os scripts `lightController.py` e `trafficLight.py` armazenam informações de conexão na pasta `groupCA`, que é criada na mesma pasta que os scripts. Se você receber erros de conexão, certifique-se de que o endereço IP no arquivo `ggc-host` corresponde ao endpoint de endereço IP para seu núcleo.

1. No AWS IoT console, escolha seu AWS IoT Greengrass grupo, escolha a guia **Dispositivos clientes** e, em seguida, escolha **GG\$1 TrafficLight** para abrir a página de detalhes do AWS IoT item do dispositivo cliente.

1. Selecione a guia **Sombras do dispositivo**. Depois que o GG\$1Switch mudar de estado, não deverá haver atualizações nesta sombra. Isso porque o GG\$1 TrafficLight está configurado para **Desativar a sincronização de sombras com a nuvem**.

1. Pressione Ctrl \$1 C na janela do dispositivo cliente (`lightController.py`) do GG\$1Switch. Você deve ver que a janela GG\$1 TrafficLight (`trafficLight.py`) para de receber mensagens de mudança de estado.

   Mantenha essas janelas abertas para que você possa executar os comandos na próxima seção.

# Testar comunicações (sincronizações de dispositivos ativadas)
<a name="comms-enabled"></a>

Para esse teste, você configura a sombra do TrafficLight dispositivo GG\$1 para sincronizar AWS IoT. Você executa os mesmos comandos como no teste anterior, mas desta vez o estado da sombra na nuvem será atualizado quando GG\$1Switch enviar uma solicitação de atualização.

1. No AWS IoT console, escolha seu AWS IoT Greengrass grupo e, em seguida, escolha a guia **Dispositivos clientes**.

1. Selecione o TrafficLight dispositivo GG\$1, escolha **Sincronizar sombra** e, em seguida, escolha **Ativar sincronização de sombra com a nuvem**.

   Você deve receber uma notificação de que o status de sincronização da sombra do dispositivo foi atualizado.

1. <a name="console-actions-deploy"></a>Na página de configuração do grupo, selecione **Implantar**.

1. [Em suas duas janelas de linha de comando, execute os comandos do teste anterior para os dispositivos cliente [GG\$1Switch e GG\$1](comms-disabled.md#run-switch-device). TrafficLight](comms-disabled.md#run-trafficlight-device)

1. Agora, verifique o estado da sombra no AWS IoT console. Escolha seu AWS IoT Greengrass grupo, escolha a guia **Dispositivos do cliente**, escolha **GG\$1 TrafficLight**, escolha a guia **Device Shadows** e, em seguida, escolha **Classic** Shadow.

   Como você ativou a sincronização da TrafficLight sombra GG\$1 com AWS IoT, o estado da sombra na nuvem deve ser atualizado sempre que GG\$1switch envia uma atualização. Essa funcionalidade pode ser usada para expor o estado de um dispositivo cliente com a AWS IoT.
**nota**  
Se necessário, você pode solucionar problemas visualizando os registros AWS IoT Greengrass principais, especialmente`runtime.log`:  

   ```
   cd /greengrass/ggc/var/log
   sudo cat system/runtime.log | more
   ```
 Você também pode visualizar `GGShadowSyncManager.log` e `GGShadowService.log`. Para obter mais informações, consulte [Solução de problemas AWS IoT Greengrass](gg-troubleshooting.md). 

Mantenha os dispositivos cliente e as assinaturas configurados. Você poderá usá-los no próximo módulo. Você também pode executar os mesmos comandos.