Testar comunicações - AWS IoT Greengrass

AWS IoT Greengrass Version 1 entrou na fase de vida útil prolongada em 30 de junho de 2023. Para obter mais informações, consulte política de manutenção do AWS IoT Greengrass V1. Após essa data, AWS IoT Greengrass V1 não lançaremos atualizações que forneçam recursos, aprimoramentos, correções de erros ou patches de segurança. Os dispositivos que funcionam AWS IoT Greengrass V1 não serão interrompidos e continuarão operando e se conectando à nuvem. É altamente recomendável que você migre para AWS IoT Greengrass Version 2, o que adiciona novos recursos significativos e suporte para plataformas adicionais.

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

Testar comunicações

  1. 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
    2. Em seu computador, execute o comando a seguir usando o endereço IP do núcleo. Você pode usar Ctrl + 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.
      nota

      Se você não conseguir fazer ping em uma instância do EC2 em execução AWS IoT Greengrass, certifique-se de que as regras do grupo de segurança de entrada da instância permitam tráfego ICMP para mensagens de solicitação do Echo. Para obter mais informações, consulte Adicionar regras a um grupo de segurança no Guia do usuário do Amazon EC2.

      Nos computadores host Windows, no Firewall do Windows com o aplicativo Segurança Avançada, talvez você também precise habilitar uma regra de entrada que permita a entrada de solicitações de eco (por exemplo, File and Printer Sharing (Compartilhamento de arquivos e impressoras) (Solicitação de eco – ICMPv4-In)) ou precise criar uma.

  2. Obtenha seu AWS IoT endpoint.

    1. No painel de navegação do console do AWS IoT, selecione Configurações.

    2. Em Endpoint de dados do dispositivo, anote o valor do Endpoint. Você pode usar esse valor para substituir o espaço reservado AWS_IOT_ENDPOINT nos comandos nas etapas a seguir.

  3. No seu computador (não no dispositivo AWS IoT Greengrass principal), abra duas janelas de linha de comando (terminal ou prompt de comando). Uma janela representa o dispositivo cliente HelloWorld _Publisher e a outra representa o dispositivo cliente HelloWorld _Subscriber.

    Após a execução, basicDiscovery.py tenta coletar informações sobre a localização do AWS IoT Greengrass núcleo em seus terminais. Essas informações são armazenadas depois que o dispositivo cliente descobre e se conecta ao núcleo. Isso permite que mensagens e operações futuras sejam executadas localmente (sem a necessidade de uma conexão com a internet).

    nota

    Os IDs de cliente usados para conexões MQTT devem corresponder ao nome do dispositivo cliente. O script basicDiscovery.py define o ID do cliente para conexões MQTT com o nome do item que você especifica ao executar o script.

    Execute o seguinte comando da pasta que contém o arquivo basicDiscovery.py para obter informações detalhadas sobre o uso de scripts:

    python basicDiscovery.py --help
  4. Na janela do dispositivo cliente HelloWorld _Publisher, execute os seguintes comandos.

    • Substitua path-to-certs-folder pelo o caminho para a pasta que contém os certificados, chaves, e basicDiscovery.py.

    • Substitua AWS_IOT_ENDPOINT pelo seu endpoint.

    • Substitua as duas CertId instâncias do editor pelo ID do certificado no nome do arquivo do seu dispositivo cliente HelloWorld _Publisher.

    cd path-to-certs-folder python basicDiscovery.py --endpoint AWS_IOT_ENDPOINT --rootCA AmazonRootCA1.pem --cert publisherCertId-certificate.pem.crt --key publisherCertId-private.pem.key --thingName HelloWorld_Publisher --topic 'hello/world/pubsub' --mode publish --message 'Hello, World! Sent from HelloWorld_Publisher'

    Você deverá ver uma saída semelhante à seguinte, que inclui entradas como Published topic 'hello/world/pubsub': {"message": "Hello, World! Sent from HelloWorld_Publisher", "sequence": 1}.

    nota

    Se o script retornar uma mensagem error: unrecognized arguments, altere as aspas simples para aspas duplas para os parâmetros --topic e --message e execute o comando novamente.

    Para solucionar problemas de conexão, você pode tentar usar a detecção manual de IP.

    Captura de tela do resultado do editor.
  5. Na janela do dispositivo cliente HelloWorld _Subscriber, execute os seguintes comandos.

    • Substitua path-to-certs-folder pelo o caminho para a pasta que contém os certificados, chaves, e basicDiscovery.py.

    • Substitua AWS_IOT_ENDPOINT pelo seu endpoint.

    • Substitua as duas CertId instâncias do assinante pelo ID do certificado no nome do arquivo do seu dispositivo HelloWorld cliente _Subscriber.

    cd path-to-certs-folder python basicDiscovery.py --endpoint AWS_IOT_ENDPOINT --rootCA AmazonRootCA1.pem --cert subscriberCertId-certificate.pem.crt --key subscriberCertId-private.pem.key --thingName HelloWorld_Subscriber --topic 'hello/world/pubsub' --mode subscribe

    Você deverá ver a seguinte saída, que inclui entradas como Received message on topic hello/world/pubsub: {"message": "Hello, World! Sent from HelloWorld_Publisher", "sequence": 1}.

    Captura de tela do resultado do assinante.

Feche a janela HelloWorld_Publisher para impedir que as mensagens sejam acumuladas na janela HelloWorld_Subscriber.

Testar em uma rede corporativa pode interferir com a conexão ao núcleo. Como alternativa, você pode inserir manualmente o endpoint. Isso garante que o basicDiscovery.py script se conecte ao endereço IP correto do dispositivo AWS IoT Greengrass principal.

Para inserir o endpoint manualmente
  1. No painel de navegação do AWS IoT console, em Gerenciar, expanda dispositivos Greengrass e escolha Grupos (V1).

  2. Em Grupos do Greengrass, selecione seu grupo.

  3. Configure o núcleo para gerenciar manualmente os endpoints do corretor MQTT. Faça o seguinte:

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

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

    3. Em Editar configurações do detector de IP, selecione Gerenciar manualmente os endpoints do corretor MQTT e, em seguida, selecione Salvar.

  4. Insira o endpoint do corretor MQTT para o núcleo. Faça o seguinte:

    1. Em Visão geral, selecione Núcleo do Greengrass.

    2. Em Endpoints do corretor MQTT, selecione Gerenciar endpoints.

    3. Selecione Adicionar endpoint e verifique se você tem apenas um valor de endpoint. Esse valor deve ser o endpoint do endereço IP da porta 8883 do seu dispositivo AWS IoT Greengrass principal (por exemplo,192.168.1.4).

    4. Selecione Atualizar.