Test delle comunicazioni - AWS IoT Greengrass

AWS IoT Greengrass Version 1 è entrato nella fase di estensione della vita utile il 30 giugno 2023. Per ulteriori informazioni, consulta la politica AWS IoT Greengrass V1 di manutenzione. Dopo questa data, AWS IoT Greengrass V1 non rilascerà aggiornamenti che forniscano funzionalità, miglioramenti, correzioni di bug o patch di sicurezza. I dispositivi che funzionano AWS IoT Greengrass V1 non subiranno interruzioni e continueranno a funzionare e a connettersi al cloud. Ti consigliamo vivamente di eseguire la migrazione a AWS IoT Greengrass Version 2, che aggiunge nuove importanti funzionalità e supporto per piattaforme aggiuntive.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Test delle comunicazioni

  1. Assicurati che il computer e il dispositivo AWS IoT Greengrass principale siano connessi a Internet utilizzando la stessa rete.

    1. Sul dispositivo AWS IoT Greengrass principale, esegui il comando seguente per trovare il relativo indirizzo IP.

      hostname -I
    2. Sul computer, esegui il comando seguente utilizzando l'indirizzo IP del core. È possibile utilizzare Ctrl + C per arrestare il comando ping.

      ping IP-address

      Un output simile al seguente indica una comunicazione riuscita tra il computer e il dispositivo AWS IoT Greengrass principale (perdita di pacchetti pari allo 0%):

      Output del comando "ping" eseguito con successo.
      Nota

      Se non riesci a eseguire il ping di un'istanza EC2 in esecuzione AWS IoT Greengrass, assicurati che le regole del gruppo di sicurezza in entrata relative all'istanza consentano il traffico ICMP per i messaggi di richiesta Echo. Per ulteriori informazioni, consulta Aggiungere regole a un gruppo di sicurezza nella Guida per l'utente di Amazon EC2.

      Nei computer host Windows, nell'app Windows Firewall con sicurezza avanzata, potrebbe essere necessario abilitare la regola per le connessioni in entrata che consente le richieste echo in entrata, ad esempio Condivisione file e stampanti (richiesta echo - ICMPv4-In), o crearne una.

  2. Ottieni il tuo AWS IoT endpoint.

    1. Dal pannello di navigazione AWS IoT della console, scegli Impostazioni.

    2. In Device data endpoint, prendi nota del valore di Endpoint. Usa questo valore per sostituire il segnaposto AWS_IOT_ENDPOINT nei comandi nei passaggi seguenti.

  3. Sul computer (non sul dispositivo AWS IoT Greengrass principale), apri due finestre della riga di comando (terminale o prompt dei comandi). Una finestra rappresenta il dispositivo client HelloWorld _Publisher e l'altra rappresenta il dispositivo client _Subscriber. HelloWorld

    Al momento dell'esecuzione, basicDiscovery.py tenta di raccogliere informazioni sulla posizione del AWS IoT Greengrass core nei relativi punti terminali. Queste informazioni vengono memorizzate dopo che il dispositivo client è stato scoperto e connesso correttamente al core. In questo modo le operazioni e la messaggistica future saranno eseguite in locale (senza bisogno di una connessione a Internet).

    Nota

    Gli ID client utilizzati per le connessioni MQTT devono corrispondere al nome dell'oggetto del dispositivo client. Lo basicDiscovery.py script imposta l'ID client per le connessioni MQTT sul nome dell'oggetto specificato quando si esegue lo script.

    Eseguite il comando seguente dalla cartella che contiene il basicDiscovery.py file per informazioni dettagliate sull'utilizzo dello script:

    python basicDiscovery.py --help
  4. Dalla finestra del dispositivo client HelloWorld _Publisher, esegui i comandi seguenti.

    • Sostituisci path-to-certs-folder con il percorso della cartella che contiene i certificati, le chiavi e basicDiscovery.py.

    • Sostituisci AWS_IOT_ENDPOINT con il tuo endpoint.

    • Sostituisci le due CertId istanze Publisher con l'ID del certificato nel nome del file per il tuo dispositivo client 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'

    L'output risultante dovrebbe essere analogo al seguente, con voci come Published topic 'hello/world/pubsub': {"message": "Hello, World! Sent from HelloWorld_Publisher", "sequence": 1}.

    Nota

    Se lo script restituisce un messaggio error: unrecognized arguments, cambia le virgolette singole in virgolette doppie per i parametri --topic e --message ed esegui nuovamente il comando.

    Per risolvere un problema di connessione, puoi provare a usare il rilevamento IP manuale.

    Screenshot dell'output del publisher.
  5. Dalla finestra del dispositivo client HelloWorld _Subscriber, esegui i seguenti comandi.

    • Sostituisci path-to-certs-folder con il percorso della cartella che contiene i certificati, le chiavi e basicDiscovery.py.

    • Sostituisci AWS_IOT_ENDPOINT con il tuo endpoint.

    • Sostituisci le due CertId istanze di sottoscrittore con l'ID del certificato nel nome del file per il tuo HelloWorld dispositivo client _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

    L'output risultante dovrebbe essere il seguente, con voci come Received message on topic hello/world/pubsub: {"message": "Hello, World! Sent from HelloWorld_Publisher", "sequence": 1}.

    Screenshot dell'output del sottoscrittore.

Chiudi la HelloWorld_Publisher finestra per evitare che i messaggi si accumulino nella finestra. HelloWorld_Subscriber

Il test su una rete aziendale potrebbe interferire con la connessione al core. Come soluzione alternativa, puoi immettere manualmente l'endpoint. Ciò garantisce che lo basicDiscovery.py script si connetta all'indirizzo IP corretto del dispositivo AWS IoT Greengrass principale.

Per immettere manualmente l'endpoint
  1. Nel riquadro di navigazione della AWS IoT console, in Gestione, espandi i dispositivi Greengrass, quindi scegli Gruppi (V1).

  2. In Gruppi Greengrass, scegli il tuo gruppo.

  3. Configura il core per gestire manualmente gli endpoint del broker MQTT. Esegui questa operazione:

    1. Nella pagina di configurazione del gruppo, scegli la scheda Funzioni Lambda.

    2. In Funzioni System Lambda, scegli Rilevatore IP, quindi scegli Modifica.

    3. In Modifica le impostazioni del rilevatore IP, scegli Gestisci manualmente gli endpoint del broker MQTT, quindi scegli Salva.

  4. Inserisci l'endpoint del broker MQTT per il core. Esegui questa operazione:

    1. In Panoramica, scegli il core Greengrass.

    2. In Endpoints del broker MQTT, scegli Gestisci endpoints.

    3. Scegli Aggiungi endpoint e assicurati di avere un solo valore di endpoint. Questo valore deve essere l'endpoint dell'indirizzo IP per la porta 8883 del dispositivo AWS IoT Greengrass principale (ad esempio,). 192.168.1.4

    4. Scegli Aggiorna.