AWS IoT Greengrass Version 1 est entré dans la phase de durée de vie prolongée le 30 juin 2023. Pour plus d'informations, consultez la politique de AWS IoT Greengrass V1 maintenance. Après cette date, AWS IoT Greengrass V1 ne publiera pas de mises à jour fournissant des fonctionnalités, des améliorations, des corrections de bogues ou des correctifs de sécurité. Les appareils qui fonctionnent AWS IoT Greengrass V1 sous tension ne seront pas perturbés et continueront à fonctionner et à se connecter au cloud. Nous vous recommandons vivement de migrer vers AWS IoT Greengrass Version 2, qui ajoute de nouvelles fonctionnalités importantes et prend en charge des plateformes supplémentaires.
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.
Test des fonctions Lambda longue durée
UNlongue duréeLa fonction Lambda démarre automatiquement lorsqueAWS IoT GreengrassCore 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 afficher le code dans laAWS Lambdaou dans laAWS IoT GreengrassSDK de Core pour Python
Au cours de cette étape, vous créez des abonnements qui permettent à la fonction LambdaAWS IoTpour échanger des messages MQTT. Ensuite, vous déployez le groupe et testez la fonction.
-
Sur la page de configuration de groupe, choisissezSubscriptions, puisAddition.
-
UnderType de source, choisissezFonction Lambda, puisHerbe verte_HelloWorld_Compteur.
-
UnderTarget type (Type de cible), choisissezService, choisissezCloud IoT.
-
Pour Filtre de rubrique, tapez
hello/world/counter
. -
Choisissez Create subscription (Créer un abonnement).
L'abonnement unique va dans une seule direction : à partir du
Greengrass_HelloWorld_Counter
fonction Lambda pourAWS IoT. Pour appeler (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. L'abonnement autorise la fonction Lambda à recevoir des messages d'AWS IoT. Vous utilisez cet abonnement lorsque vous envoyez un message à partir duAWS IoTconsole qui appelle la fonction.
-
Pour la source, choisissezService, puisCloud IoT.
-
Pour la cible, choisissezFonction Lambda, puisHerbe verte_HelloWorld_Compteur.
-
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. -
Assurez-vous que le démon Greengrass est en cours d'exécution comme décrit dansDéploiement des configurations cloud sur un appareil Core.
-
Sur la page de configuration de groupe, choisissezDéploiement.
-
Une fois que votre déploiement est terminé, revenez à laAWS IoTpage d'accueil de la console et choisissezTest.
-
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 Subscribe.
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.py
qui publie dans la rubriquehello/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é
Greengrass_HelloWorld_Counter
fonction Lambda à appeler lorsqu'elle reçoit un message MQTT sur lahello/world/counter/trigger
rubrique.LeHerbe verte_HelloWorld_CompteurpourCloud IoTL'abonnement autorise la fonction à d'envoyer des messages àAWS IoTsur le
hello/world/counter
rubrique. LeCloud IoTpourHerbe verte_HelloWorld_Compteurl'abonnement permetAWS IoTpour envoyer des messages à la fonction sur lahello/world/counter/trigger
rubrique. -
Pour tester le cycle de vie longue durée de vie, appelez la fonction Lambda en publiant un message dans la
hello/world/counter/trigger
rubrique. Vous pouvez utiliser le message par défaut.Note
La fonction
Greengrass_HelloWorld_Counter
ignore 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 duAWS IoT GreengrassSDK de 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 à partir de la fonction Lambda. Comme le gestionnaire de la fonction inclut un cycle de veille de 20 secondes (time.sleep(20)
), le déclenchement répété du gestionnaire place les réponses en file d'attente depuis leAWS IoT GreengrassCœur.
![Capture d'écran illustrant l'incrémentation du nombre d'appels de 1, 2 et 3.](images/gg-get-started-058.png)