

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

# Prova le funzioni Lambda di lunga durata
<a name="long-testing"></a>

Una funzione Lambda di *[lunga durata](lambda-functions.md#lambda-lifecycle)* si avvia automaticamente AWS IoT Greengrass all'avvio del core e viene eseguita in un singolo contenitore (o sandbox). Qualsiasi variabile o logica di preelaborazione definite al di fuori del gestore della funzione sono conservate per ogni richiamo del gestore della funzione. Chiamate multiple del gestore della funzione vengono messe in coda finché le chiamate precedenti non sono state eseguite.

 Il codice `greengrassHelloWorldCounter.py` utilizzato in questo modulo definisce una variabile `my_counter` al di fuori del gestore della funzione.

**Nota**  
Puoi visualizzare il codice nella AWS Lambda console o nel [AWS IoT Greengrass Core SDK for GitHub Python on](https://github.com/aws/aws-greengrass-core-sdk-python/blob/master/examples/HelloWorldCounter/greengrassHelloWorldCounter.py).

In questo passaggio, si creano abbonamenti che consentono la funzione Lambda AWS IoT e lo scambio di messaggi MQTT. Quindi si procede alla distribuzione del gruppo e al test della funzione.

1. **Nella pagina di configurazione del gruppo, scegli **Sottoscrizioni, quindi** scegli Aggiungi.**

1. In **Tipo di origine**, scegli **Funzione Lambda**, quindi scegli **HelloWorldGreengrass\$1** \$1Counter.

1. In **Tipo di destinazione**, scegli **Servizio**, scegli **IoT Cloud**.

1. In **Topic filter (Filtro argomento)**, immettere **hello/world/counter**.

1. Scegli **Crea sottoscrizione**.

   Questo abbonamento singolo va in una sola direzione: dalla funzione `Greengrass_HelloWorld_Counter` Lambda a. AWS IoT Per richiamare (o attivare) questa funzione Lambda dal cloud, devi creare un abbonamento nella direzione opposta.

1. Segui i passaggi da 1 a 5 per aggiungere un altro abbonamento che utilizzi i seguenti valori. Questo abbonamento consente alla funzione Lambda di ricevere messaggi da. AWS IoT Si utilizza questo abbonamento quando si invia un messaggio dalla AWS IoT console che richiama la funzione.
   + Come fonte, scegli **Servizio**, quindi scegli **IoT Cloud**.
   + Per la destinazione, scegli la **funzione Lambda**, quindi scegli **HelloWorldGreengrass\$1** \$1Counter.
   + Per il filtro di argomenti, immetti **hello/world/counter/trigger**.

   In questo filtro dell'argomento viene usata l'estensione `/trigger` perché hai creato due sottoscrizioni ed è necessario che non interferiscano tra loro.

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

1. <a name="console-test-after-deploy"></a>Una volta completata la distribuzione, torna alla home page della AWS IoT console e scegli **Test**.

1. Configura i campi seguenti:
   + Per **Argomento sottoscrizione**, immetti **hello/world/counter**.
   + Per **Quality of Service (Qualità del servizio)**, scegli **0**.
   + Per **MQTT payload display (Visualizzazione payload MQTT)**, scegli **Display payloads as strings (Visualizza payload come stringhe)**.

1. Scegliere **Subscribe (Effettua sottoscrizione)**.

   A differenza della [Parte 1](module3-I.md) di questo modulo, non dovresti visualizzare messaggi dopo aver effettuato la sottoscrizione a `hello/world/counter`. Questo perché il codice `greengrassHelloWorldCounter.py` che pubblica nell'argomento `hello/world/counter` si trova all'interno del gestore della funzione, che viene eseguito solo quando viene richiamata la funzione.

   In questo modulo, avete configurato la funzione `Greengrass_HelloWorld_Counter` Lambda per essere richiamata quando riceve un messaggio MQTT sull'argomento. `hello/world/counter/trigger`

   L'abbonamento **Greengrass\$1 HelloWorld \$1Counter to** **IoT Cloud** consente la funzione di inviare messaggi AWS IoT sull'argomento. `hello/world/counter` L'abbonamento **IoT Cloud** to **Greengrass\$1 HelloWorld \$1Counter** consente di AWS IoT inviare messaggi alla funzione sull'argomento. `hello/world/counter/trigger`

1. Per testare il ciclo di vita di lunga durata, richiama la funzione Lambda pubblicando un messaggio sull'argomento. `hello/world/counter/trigger` Puoi usare il messaggio predefinito.  
![\[Messaggio predefinito di Hello from AWS IoT console inviato a hello/world/counter/trigger con il pulsante Pubblica sull'argomento evidenziato.\]](http://docs.aws.amazon.com/it_it/greengrass/v1/developerguide/images/gg-get-started-057.png)
**Nota**  
 La funzione `Greengrass_HelloWorld_Counter` ignora il contenuto dei messaggi ricevuti. Esegue solamente il codice in `function_handler`, che invia un messaggio all'argomento `hello/world/counter`. Puoi rivedere questo codice dal [AWS IoT Greengrass Core SDK for GitHub Python on](https://github.com/aws/aws-greengrass-core-sdk-python/blob/master/examples/HelloWorldCounter/greengrassHelloWorldCounter.py).

Ogni volta che un messaggio viene pubblicato nell'argomento `hello/world/counter/trigger`, la variabile `my_counter` viene incrementata. Questo conteggio delle chiamate viene visualizzato nei messaggi inviati dalla funzione Lambda. Poiché il gestore della funzione include un ciclo di sonno di 20 secondi (`time.sleep(20)`), l'attivazione ripetuta del gestore mette in coda le risposte provenienti dal core. AWS IoT Greengrass 

![\[Screenshot che mostra l'incremento di Invocation Count da 1, 2 e 3.\]](http://docs.aws.amazon.com/it_it/greengrass/v1/developerguide/images/gg-get-started-058.png)
