

Avviso di fine del supporto: il 7 ottobre 2026, AWS il supporto per. AWS IoT Greengrass Version 1 Dopo il 7 ottobre 2026, non potrai più accedere alle risorse. AWS IoT Greengrass V1 Per ulteriori informazioni, visita [Migrate](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html) from. AWS IoT Greengrass Version 1

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

# Modulo 5: interazione con dispositivi ombra
<a name="module5"></a>

Questo modulo avanzato mostra come i dispositivi client possono interagire con [le ombre dei AWS IoT dispositivi](https://docs.aws.amazon.com/iot/latest/developerguide/iot-device-shadows.html) in un AWS IoT Greengrass gruppo. Una *shadow* è un documento JSON utilizzato per archiviare informazioni di stato correnti o desiderate per un oggetto. In questo modulo, scoprite come un dispositivo client (`GG_Switch`) può modificare lo stato di un altro dispositivo client (`GG_TrafficLight`) e come questi stati possono essere sincronizzati con il AWS IoT Greengrass cloud:

![\[AWS IoT Greengrass core è collegato a un dispositivo semaforico shadow e a un dispositivo di commutazione della luce.\]](http://docs.aws.amazon.com/it_it/greengrass/v1/developerguide/images/gg-get-started-077.5.png)


Prima di iniziare, eseguire lo script [Greengrass Device Setup](quick-start.md) o assicurarsi di aver completato il [modulo 1](module1.md) e il [modulo 2](module2.md). Dovresti anche capire come connettere i dispositivi client a un AWS IoT Greengrass core ([Modulo 4](module4.md)). Non sono necessari altri componenti o dispositivi.

Il completamento di questo modulo richiede circa 30 minuti.

**Topics**
+ [Configurazione di dispositivi e sottoscrizioni](config-dev-subs.md)
+ [Scarica i file richiesti](file-download.md)
+ [Test delle comunicazioni (sincronizzazione dispositivi disattivata)](comms-disabled.md)
+ [Test delle comunicazioni (sincronizzazione dispositivi attivata)](comms-enabled.md)

# Configurazione di dispositivi e sottoscrizioni
<a name="config-dev-subs"></a>

Le ombre possono essere sincronizzate AWS IoT quando il AWS IoT Greengrass core è connesso a Internet. In questo modulo utilizzerai prima di tutto le copie shadow locali senza sincronizzarle con il cloud. In seguito, abiliterai la sincronizzazione cloud.

Ogni dispositivo client ha la propria ombra. Per ulteriori informazioni, consulta [Device shadow service AWS IoT](https://docs.aws.amazon.com/iot/latest/developerguide/iot-device-shadows.html) nella *AWS IoT Device Shadow Guide*.

1. Nella pagina di configurazione del gruppo, scegli la scheda **Dispositivi client**.

1. Dalla scheda **Dispositivi client**, aggiungi due nuovi dispositivi client al tuo AWS IoT Greengrass gruppo. Per una procedura dettagliata di questo processo, consulta [Creare dispositivi client in un AWS IoT Greengrass gruppo](device-group.md).
   + Assegna un nome ai dispositivi client **GG\$1Switch** e**GG\$1TrafficLight**.
   + Genera e scarica le risorse di sicurezza per entrambi i dispositivi client.
   + Prendi nota dell'ID del certificato nei nomi dei file delle risorse di sicurezza per i dispositivi client. Questi valori verranno usati in seguito.

1. Crea una cartella sul tuo computer per le credenziali di sicurezza di questi dispositivi client. Copia i certificati e le chiavi in questa cartella.

1. Assicurati che i dispositivi client siano impostati per utilizzare le ombre locali e non si sincronizzino con. Cloud AWS In caso contrario, seleziona il dispositivo client, scegli **Sincronizza shadow**, quindi scegli **Disabilita la sincronizzazione delle ombre con il cloud**.

1. <a name="module5-subscriptions"></a>Aggiungi le sottoscrizioni nella tabella seguente al tuo gruppo. Ad esempio, per creare la prima sottoscrizione:

   1. Nella pagina di configurazione del gruppo, scegli la scheda **Abbonamenti**, quindi scegli **Aggiungi**.

   1. Per **Tipo di sorgente**, scegli **Dispositivo client**, quindi scegli **GG\$1Switch**.

   1. Per **Tipo di destinazione**, scegliete **Servizio**, quindi scegliete **Local** Shadow Service.

   1. In **Filtro di argomenti**, immetti **\$1aws/things/GG\$1TrafficLight/shadow/update**.

   1. Scegli **Crea sottoscrizione**.

   Gli argomenti devono essere immessi esattamente come mostrato nella tabella. Anche se è possibile utilizzare i caratteri jolly per consolidare alcune delle sottoscrizioni, è sconsigliato ricorrere a questa pratica. Per ulteriori informazioni, consultate gli [argomenti relativi a Shadow MQTT](https://docs.aws.amazon.com/iot/latest/developerguide/device-shadow-mqtt.html) nella *AWS IoT Developer Guide*.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/greengrass/v1/developerguide/config-dev-subs.html)

   **I nuovi abbonamenti vengono visualizzati nella scheda Abbonamenti.**
**Nota**  
Per ulteriori informazioni sul carattere `$`, consulta [Argomenti riservati](https://docs.aws.amazon.com/iot/latest/developerguide/topics.html#reserved-topics).

1. <a name="enable-automatic-detection"></a>Assicurati che il rilevamento automatico sia abilitato in modo che il core di Greengrass possa pubblicare un elenco dei suoi indirizzi IP. I dispositivi client utilizzano queste informazioni per scoprire il core. Esegui questa operazione:

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

   1. **In **Funzioni System Lambda**, scegli **Rilevatore IP**, quindi scegli Modifica.**

   1. **In **Modifica le impostazioni del rilevatore IP**, scegli **Rileva automaticamente e sostituisci gli endpoint del broker MQTT**, quindi scegli Salva.**

1. Assicuratevi che il demone Greengrass sia in esecuzione, come descritto in. [Distribuire configurazioni cloud su un dispositivo core](configs-core.md)

1. <a name="console-actions-deploy"></a>**Nella pagina di configurazione del gruppo, scegliete Deploy.**

# Scarica i file richiesti
<a name="file-download"></a>

1. Se non l'hai già fatto, installa il SDK per dispositivi AWS IoT for Python. Per istruzioni, consulta il passaggio 1 in [Installa il SDK per dispositivi AWS IoT for Python](IoT-SDK.md).

   Questo SDK viene utilizzato dai dispositivi client per comunicare con AWS IoT e con i dispositivi AWS IoT Greengrass principali.

1. Dalla cartella degli [ TrafficLight](https://github.com/aws/aws-greengrass-core-sdk-python/tree/master/examples/TrafficLight)esempi in poi GitHub, scarica i `trafficLight.py` file `lightController.py` and sul tuo computer. Salvateli nella cartella che contiene i certificati e le chiavi dei dispositivi TrafficLight client GG\$1Switch e GG\$1.

   Lo `lightController.py` script corrisponde al dispositivo client GG\$1Switch e lo script corrisponde al dispositivo client GG\$1. `trafficLight.py` TrafficLight   
![\[Screenshot di file, tra cui i due script di Python, i certificati e le chiavi dei dispositivi.\]](http://docs.aws.amazon.com/it_it/greengrass/v1/developerguide/images/gg-get-started-082.png)
**Nota**  
I file Python di esempio sono archiviati nel repository AWS IoT Greengrass Core SDK for Python per comodità, ma non utilizzano Core SDK. AWS IoT Greengrass 

# Test delle comunicazioni (sincronizzazione dispositivi disattivata)
<a name="comms-disabled"></a>

1. <a name="ping-device"></a>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
      ```

   1. Sul computer, esegui il comando seguente utilizzando l'indirizzo IP del core. È possibile utilizzare Ctrl \$1 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.\]](http://docs.aws.amazon.com/it_it/greengrass/v1/developerguide/images/gg-get-started-075.5.png)
**Nota**  
Se non riesci a eseguire il ping di un' EC2 istanza 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](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html#sg-rules-ping). Per ulteriori informazioni, consulta [Aggiungere regole a un gruppo di sicurezza](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html#adding-security-group-rule) nella *Amazon EC2 User Guide*.  
Sui computer host Windows, nell'app Windows Firewall with Advanced Security, potrebbe anche essere necessario abilitare una regola in entrata che consenta le richieste echo in entrata (ad esempio, **condivisione di file e stampanti (Echo Request - ICMPv4 -In))** o crearne una.

1. Ottieni il tuo endpoint. AWS IoT 

   1. <a name="iot-settings"></a>Dal pannello di navigazione [AWS IoT della console](https://console.aws.amazon.com/iot/), scegli **Impostazioni**.

   1. <a name="iot-settings-endpoint"></a>In **Device data endpoint**, prendi nota del valore di **Endpoint**. Si utilizza questo valore per sostituire il *AWS\$1IOT\$1ENDPOINT* segnaposto nei comandi nei passaggi seguenti.
**Nota**  
Assicurati che gli [endpoint corrispondano al tipo di certificato](gg-core.md#certificate-endpoints).

1. <a name="repeated-step"></a>Sul computer (non sul dispositivo AWS IoT Greengrass principale), apri due finestre della [riga di comando](https://en.wikipedia.org/wiki/Command-line_interface) (terminale o prompt dei comandi). Una finestra rappresenta il dispositivo client GG\$1Switch e l'altra rappresenta il dispositivo client GG\$1. TrafficLight 

   1. <a name="run-switch-device"></a>Dalla finestra del dispositivo client GG\$1Switch, esegui i seguenti comandi.
      + Sostituisci *path-to-certs-folder* con il percorso della cartella che contiene i certificati, le chiavi e i file Python.
      + *AWS\$1IOT\$1ENDPOINT*Sostituiscilo con il tuo endpoint.
      + Sostituisci le due *switchCertId* istanze con l'ID del certificato nel nome del file per il tuo dispositivo client 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>Dalla finestra del dispositivo TrafficLight client GG\$1, esegui i seguenti comandi.
      + Sostituisci *path-to-certs-folder* con il percorso della cartella che contiene i certificati, le chiavi e i file Python.
      + *AWS\$1IOT\$1ENDPOINT*Sostituiscilo con il tuo endpoint.
      + Sostituisci le due *lightCertId* istanze con l'ID del certificato nel nome del file per il tuo dispositivo client GG\$1TrafficLight .

      ```
      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
      ```

      Ogni 20 secondi, lo switch aggiorna lo stato shadow a G, Y e R e la luce mostra il nuovo stato, come mostrato di seguito.

      Output di GG\$1Switch:  
![\[Screenshot di output associati a GG_Switch.\]](http://docs.aws.amazon.com/it_it/greengrass/v1/developerguide/images/gg-get-started-083.png)

      Uscita GG\$1: TrafficLight   
![\[Schermata dell'output associato a GG_. TrafficLight\]](http://docs.aws.amazon.com/it_it/greengrass/v1/developerguide/images/gg-get-started-084.png)

   Quando viene eseguito per la prima volta, ogni script del dispositivo client esegue il servizio di AWS IoT Greengrass rilevamento per connettersi al AWS IoT Greengrass core (tramite Internet). Dopo che un dispositivo client è stato scoperto e connesso correttamente al AWS IoT Greengrass core, le operazioni future possono essere eseguite localmente.
**Nota**  
<a name="check-connection-info"></a> Gli script `trafficLight.py` e `lightController.py` memorizzano informazioni di connessione nella cartella `groupCA`, che viene creata nella stessa cartella degli script. Se ricevi errori di connessione, assicurati che l'indirizzo IP nel `ggc-host` file corrisponda all'endpoint dell'indirizzo IP del core.

1. Nella AWS IoT console, scegli il tuo AWS IoT Greengrass gruppo, scegli la scheda **Dispositivi client**, quindi scegli **GG\$1 TrafficLight** per aprire la pagina dei dettagli dell' AWS IoT oggetto del dispositivo client.

1. Scegli la scheda **Device Shadows**. Dopo che GG\$1Switch ha cambiato lo stato, non dovrebbero esserci aggiornamenti a questa ombra. Questo perché GG\$1 TrafficLight è impostato su **Disabilita** la sincronizzazione delle ombre con il cloud.

1. Premete Ctrl \$1 C nella finestra del dispositivo client GG\$1switch ()`lightController.py`. Dovresti vedere che la finestra GG\$1 TrafficLight (`trafficLight.py`) smette di ricevere messaggi di cambio di stato.

   Tieni aperte queste finestre per poter eseguire i comandi nella sezione successiva.

# Test delle comunicazioni (sincronizzazione dispositivi attivata)
<a name="comms-enabled"></a>

Per questo test, si configura l'ombra del TrafficLight dispositivo GG\$1 con cui sincronizzarsi. AWS IoT Si eseguono gli stessi comandi del test precedente, ma questa volta lo stato shadow nel cloud viene stato aggiornato quando GG\$1Switch invia una richiesta di aggiornamento.

1. Nella AWS IoT console, scegli il tuo AWS IoT Greengrass gruppo, quindi scegli la scheda **Dispositivi client**.

1. Seleziona il TrafficLight dispositivo GG\$1, scegli **Sincronizza shadow, quindi scegli Abilita la sincronizzazione** **delle ombre con** il cloud.

   Dovresti ricevere una notifica che lo stato di sincronizzazione dello shadow del dispositivo è stato aggiornato.

1. <a name="console-actions-deploy"></a>Nella pagina di configurazione del gruppo, scegli **Deploy.**

1. [Nelle due finestre a riga di comando, esegui i comandi del test precedente per i dispositivi client [GG\$1Switch e GG\$1](comms-disabled.md#run-switch-device). TrafficLight](comms-disabled.md#run-trafficlight-device)

1. Ora controlla lo stato dell'ombra nella console. AWS IoT **Scegli il tuo AWS IoT Greengrass gruppo, scegli la scheda **Dispositivi client**, scegli **GG\$1 TrafficLight**, scegli la scheda **Device Shadows**, quindi scegli Classic Shadow.**

   Poiché hai abilitato la sincronizzazione di GG\$1 TrafficLight shadow con AWS IoT, lo stato ombra nel cloud dovrebbe essere aggiornato ogni volta che GG\$1Switch invia un aggiornamento. Questa funzionalità può essere utilizzata per esporre lo stato di un dispositivo client a. AWS IoT
**Nota**  
Se necessario, è possibile risolvere i problemi visualizzando i log AWS IoT Greengrass principali, in particolare: `runtime.log`  

   ```
   cd /greengrass/ggc/var/log
   sudo cat system/runtime.log | more
   ```
 Puoi anche visualizzare `GGShadowSyncManager.log` e `GGShadowService.log`. Per ulteriori informazioni, consulta [Risoluzione dei problemi AWS IoT Greengrass](gg-troubleshooting.md). 

Mantieni configurati i dispositivi client e gli abbonamenti. Li utilizzerai nel modulo successiva. Eseguirai anche gli stessi comandi.