

Avis de fin de support : le 7 octobre 2026, AWS le support de. AWS IoT Greengrass Version 1 Après le 7 octobre 2026, vous ne pourrez plus accéder aux AWS IoT Greengrass V1 ressources. Pour plus d'informations, rendez-vous sur [Migrer depuis AWS IoT Greengrass Version 1](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html).

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Testez des fonctions Lambda à longue durée de vie
<a name="long-testing"></a>

Une fonction Lambda de *[longue durée](lambda-functions.md#lambda-lifecycle)* démarre automatiquement lorsque AWS IoT Greengrass le noyau démarre et s'exécute dans un seul conteneur (ou sandbox). Les variables et la logique de prétraitement définies à l'extérieur du gestionnaire de fonctions sont conservées pour chaque appel du gestionnaire de fonctions. Plusieurs appels du gestionnaire de fonctions sont placés en file d'attente jusqu'à ce que les appels antérieurs aient été exécutés.

 Le code `greengrassHelloWorldCounter.py` utilisé dans ce module définit une variable `my_counter` en dehors du gestionnaire de fonctions.

**Note**  
Vous pouvez consulter le code dans la AWS Lambda console ou dans le [SDK AWS IoT Greengrass Core pour Python](https://github.com/aws/aws-greengrass-core-sdk-python/blob/master/examples/HelloWorldCounter/greengrassHelloWorldCounter.py) sur GitHub.

Au cours de cette étape, vous créez des abonnements qui autorisent la fonction Lambda et AWS IoT l'échange de messages MQTT. Ensuite, vous déployez le groupe et testez la fonction.

1. Sur la page de configuration du groupe, choisissez **Abonnements**, puis sélectionnez **Ajouter**.

1. Sous **Type de source**, choisissez la **fonction Lambda**, puis **HelloWorldGreengrass\$1** \$1Counter.

1. Sous **Type de cible**, choisissez **Service**, puis **IoT Cloud**.

1. Pour **Filtre de rubrique**, tapez **hello/world/counter**.

1. Choisissez **Create subscription** (Créer un abonnement).

   Cet abonnement unique va dans un seul sens : de la fonction `Greengrass_HelloWorld_Counter` Lambda à. AWS IoT Pour invoquer (ou déclencher) cette fonction Lambda depuis le cloud, vous devez créer un abonnement dans le sens inverse.

1. Suivez les étapes 1 à 5 pour ajouter un autre abonnement utilisant les valeurs suivantes. Cet abonnement permet à la fonction Lambda de recevoir des messages de. AWS IoT Vous utilisez cet abonnement lorsque vous envoyez un message depuis la AWS IoT console qui appelle la fonction.
   + Pour la source, choisissez **Service**, puis **IoT Cloud**.
   + Pour la cible, choisissez la **fonction Lambda**, puis **HelloWorldGreengrass\$1** \$1Counter.
   + Pour le filtre de rubriques, tapez **hello/world/counter/trigger**.

   L'extension `/trigger` est utilisée dans ce filtre de rubriques, car vous avez créé deux abonnements et vous ne souhaitez pas qu'ils interfèrent l'un avec l'autre.

1. Assurez-vous que le daemon Greengrass est en cours d'exécution, comme décrit dans. [Déploiement des configurations cloud sur un appareil Core](configs-core.md)

1. <a name="console-actions-deploy"></a>Sur la page de configuration du groupe, choisissez **Deploy**.

1. <a name="console-test-after-deploy"></a>Une fois le déploiement terminé, revenez à la page d'accueil de la AWS IoT console et choisissez **Test**.

1. Configurez les champs suivants :
   + Pour **Rubrique d'abonnement**, entrez **hello/world/counter**.
   + Pour **Qualité de service**, choisissez **0**.
   + Pour **Affichage de la charge utile MQTT**, choisissez **Afficher les charges utiles sous forme de chaînes (plus de précision)**.

1. Choisissez **Souscrire**.

   Contrairement à la [Partie 1](module3-I.md) de ce module, vous ne devriez pas voir de messages après vous être abonné à `hello/world/counter`. En effet, le code `greengrassHelloWorldCounter.py` qui publie dans la rubrique `hello/world/counter` est à l'intérieur du gestionnaire de fonctions, qui s'exécute uniquement lorsque la fonction est appelée.

   Dans ce module, vous avez configuré la fonction `Greengrass_HelloWorld_Counter` Lambda pour qu'elle soit invoquée lorsqu'elle reçoit un message MQTT sur le sujet. `hello/world/counter/trigger`

   L'abonnement **Greengrass\$1 HelloWorld \$1Counter to** **IoT Cloud** permet à la fonction d'envoyer des messages AWS IoT sur le sujet. `hello/world/counter` L'abonnement **IoT Cloud** to **Greengrass\$1 HelloWorld \$1Counter** permet d'envoyer des messages AWS IoT à la fonction sur le sujet. `hello/world/counter/trigger`

1. Pour tester le cycle de vie à long terme, appelez la fonction Lambda en publiant un message dans le sujet. `hello/world/counter/trigger` Vous pouvez utiliser le message par défaut.  
![\[Message Hello from AWS IoT console envoyé par défaut hello/world/counter/trigger avec le bouton Publier dans le sujet surligné.\]](http://docs.aws.amazon.com/fr_fr/greengrass/v1/developerguide/images/gg-get-started-057.png)
**Note**  
 La fonction `Greengrass_HelloWorld_Counter` ignore le contenu des messages reçus. La fonction exécute simplement le code figurant dans `function_handler`, qui envoie un message à la rubrique `hello/world/counter`. Vous pouvez consulter ce code depuis le [SDK AWS IoT Greengrass principal pour Python](https://github.com/aws/aws-greengrass-core-sdk-python/blob/master/examples/HelloWorldCounter/greengrassHelloWorldCounter.py) sur GitHub.

Chaque fois qu'un message est publié dans la rubrique `hello/world/counter/trigger`, la variable `my_counter` est incrémentée. Ce nombre d'invocations est indiqué dans les messages envoyés par la fonction Lambda. Comme le gestionnaire de fonctions inclut un cycle de veille de 20 secondes (`time.sleep(20)`), le déclenchement répété du gestionnaire met en file d'attente les réponses provenant du noyau. AWS IoT Greengrass 

![\[Capture d'écran illustrant l'incrémentation du nombre d'appels de 1, 2 et 3.\]](http://docs.aws.amazon.com/fr_fr/greengrass/v1/developerguide/images/gg-get-started-058.png)
