View a markdown version of this page

Testez les fonctions Lambda à longue durée de vie - AWS IoT Greengrass

Avis de fin de support : le 7 octobre 2026, AWS le support pour 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.

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 les fonctions Lambda à longue durée de vie

Une fonction Lambda de longue durée démarre automatiquement au démarrage du AWS IoT Greengrass cœur 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 sur GitHub.

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

  1. Sur la page de configuration du groupe, choisissez Abonnements, puis cliquez sur Ajouter.

  2. Sous Type de source, choisissez Fonction Lambda, puis choisissez Greengrass_HelloWorld_Counter.

  3. Sous Type de cible, choisissez Service, puis IoT Cloud.

  4. Pour Filtre de rubrique, tapez hello/world/counter.

  5. Choisissez Créer un abonnement.

    Cet abonnement unique ne va que 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.

  6. 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 invoque la fonction.

    • Pour la source, choisissez Service, puis IoT Cloud.

    • Pour la cible, choisissez la fonction Lambda, puis choisissez Greengrass_HelloWorld_Counter.

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

  7. Assurez-vous que le démon Greengrass est en cours d'exécution, comme décrit dans. Déploiement des configurations cloud sur un appareil Core

  8. Sur la page de configuration du groupe, choisissez Déployer.

  9. Une fois votre déploiement terminé, revenez à la page d'accueil de la AWS IoT console et choisissez Tester.

  10. 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).

  11. Choisissez Abonner.

    Contrairement à la Partie 1 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 hello/world/counter/trigger sujet.

    L'abonnement Greengrass_HelloWorld_Counter to IoT Cloud permet d'envoyer des messages à des personnes AWS IoT sur le hello/world/counter sujet. L'Greengrass_HelloWorld_Counterabonnement IoT Cloud permet d' AWS IoT envoyer des messages à la fonction sur le hello/world/counter/trigger sujet.

  12. Pour tester le cycle de vie prolongé, appelez la fonction Lambda en publiant un message dans la rubrique. hello/world/counter/trigger Vous pouvez utiliser le message par défaut.

    Par défaut, le message Hello from AWS IoT console est envoyé à hello/world/counter/trigger avec le bouton Publier dans la rubrique en surbrillance.
    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 à partir du SDK AWS IoT Greengrass Core pour Python 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'appels est indiqué dans les messages envoyés par la fonction Lambda. Étant donné que le gestionnaire de fonctions inclut un cycle de veille de 20 secondes (time.sleep(20)), le fait de déclencher à plusieurs reprises le gestionnaire met les réponses en file d'attente depuis le cœur. AWS IoT Greengrass

Capture d'écran illustrant l'incrémentation du nombre d'appels de 1, 2 et 3.