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
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.
-
Sur la page de configuration du groupe, choisissez Abonnements, puis cliquez sur Ajouter.
-
Sous Type de source, choisissez Fonction Lambda, puis choisissez Greengrass_HelloWorld_Counter.
-
Sous Type de cible, choisissez Service, puis IoT Cloud.
-
Pour Filtre de rubrique, tapez
hello/world/counter. -
Choisissez Créer un abonnement.
Cet abonnement unique ne va que dans un seul sens : de la fonction
Greengrass_HelloWorld_CounterLambda à AWS IoT. Pour invoquer (ou déclencher) cette fonction Lambda depuis le cloud, vous devez créer un abonnement dans le sens inverse. -
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
/triggerest 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. -
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
-
Sur la page de configuration du groupe, choisissez Déployer.
-
Une fois votre déploiement terminé, revenez à la page d'accueil de la AWS IoT console et choisissez Tester.
-
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).
-
-
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 codegreengrassHelloWorldCounter.pyqui publie dans la rubriquehello/world/counterest à 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_CounterLambda pour qu'elle soit invoquée lorsqu'elle reçoit un message MQTT sur lehello/world/counter/triggersujet.L'abonnement Greengrass_HelloWorld_Counter to IoT Cloud permet d'envoyer des messages à des personnes AWS IoT sur le
hello/world/countersujet. L'Greengrass_HelloWorld_Counterabonnement IoT Cloud permet d' AWS IoT envoyer des messages à la fonction sur lehello/world/counter/triggersujet. -
Pour tester le cycle de vie prolongé, appelez la fonction Lambda en publiant un message dans la rubrique.
hello/world/counter/triggerVous pouvez utiliser le message par défaut.
Note
La fonction
Greengrass_HelloWorld_Counterignore le contenu des messages reçus. La fonction exécute simplement le code figurant dansfunction_handler, qui envoie un message à la rubriquehello/world/counter. Vous pouvez consulter ce code à partir du SDK AWS IoT Greengrass Core pour Pythonsur 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