Création et empaquetage d'une fonction Lambda - AWS IoT Greengrass

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.

Création et empaquetage d'une fonction Lambda

L'exemple de fonction Lambda Python dans ce module utilise la fonction LambdaAWS IoT GreengrassKit SDK Corepour Python pour publier des messages MQTT.

Au cours de cette étape, vous :

  • Télécharger leAWS IoT GreengrassKit SDK Core pour Python sur votre ordinateur (et non leAWS IoT Greengrasspériphérique principal).

  • Créez un package de déploiement de votre fonction Lambda qui contient le code de la fonction et les dépendances.

  • Utilisez la console Lambda pour créer une fonction Lambda et télécharger le package de déploiement.

  • Publiez une version de la fonction Lambda et créez un alias qui pointe vers la version.

Pour compléter ce module, Python 3.7 doit être installé sur votre appareil noyau.

 

  1. À partir desAWS IoT GreengrassKit SDK Corepage de téléchargement, téléchargez leAWS IoT GreengrassSDK Core pour Python sur votre ordinateur.

  2. Décompressez le package téléchargé pour obtenir le code de la fonction Lambda et le kit SDK.

    La fonction Lambda dans ce module utilise :

    • Le fichier greengrassHelloWorld.py dans examples\HelloWorld. Il s'agit de votre code de fonction Lambda. La fonction publie l'un des deux messages possibles toutes les cinq secondes dans la rubrique hello/world.

    • Le dossier greengrasssdk. Il s'agit du kit SDK.

  3. Copiez le dossier greengrasssdk dans le dossier HelloWorld qui contient greengrassHelloWorld.py.

  4. Pour créer le package de déploiement de votre fonction Lambda, enregistrezgreengrassHelloWorld.pyet l'greengrasssdkdossier vers un dossier compressézipfichier dénomméhello_world_python_lambda.zip. Le fichier py et le dossier du greengrasssdk doivent être à la racine du répertoire.

    Capture d'écran montrant le contenu zippé du fichier hello_word_python_lambda.zip.

    Sur les systèmes UNIX (y compris le terminal Mac), vous pouvez utiliser la commande suivante pour compresser le fichier et le dossier :

    zip -r hello_world_python_lambda.zip greengrasssdk greengrassHelloWorld.py
    Note

    En fonction de votre distribution, il se peut que vous deviez installer zip d'abord (par exemple, en exécutant sudo apt-get install zip). La commande d'installation peut varier pour votre distribution.

    Vous êtes maintenant prêt à créer votre fonction Lambda et à télécharger le package de déploiement.

  5. Ouvrez la console Lambda et choisissezCréation de fonction.

  6. Choisissez Créer à partir de zéro.

  7. Nommez votre fonction Greengrass_HelloWorld et définissez les champs restants comme suit :

    • Pour Runtime, sélectionnez Python 3.7.

    • PourAutorisations, conservez le paramètre par défaut. Cela crée un rôle d'exécution qui accorde des autorisations Lambda de base. Ce rôle n'est pas utilisé parAWS IoT Greengrass.

    Sélectionnez Create function (Créer une fonction).

  8. Chargez le package de déploiement de votre fonction Lambda :

    1. Dans la pageCodeonglet, sousSource de code, choisissezChargement à partir des. Dans le menu déroulant, cliquez sur.fichier .zip.

      Le menu déroulant Charger depuis avec le fichier .zip en surbrillance.
    2. ChoisissezCharger, puis choisissez votrehello_world_python_lambda.zippackage de déploiement. Ensuite, choisissez Enregistrer.

    3. Dans la pageCodepour la fonction, sousParamètres d'exécution, choisissezModifier, puis entrez les valeurs suivantes.

      • Pour Runtime, sélectionnez Python 3.7.

      • Pour Handler (Gestionnaire), entrez greengrassHelloWorld.function_handler.

      La section « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « « «greengrassHelloWorld.function_handler ».
    4. Choisissez Save (Enregistrer).

      Note

      LeTestsur le bouton.AWS Lambdane fonctionne pas avec cette fonction. LeAWS IoT GreengrassLe SDK principal ne contient pas de modules nécessaires pour exécuter vos fonctions Greengrass Lambda indépendamment dans leAWS Lambdaconsole Ces modules (par exemple,greengrass_common) sont fournis aux fonctions après leur déploiement dans votre cœur Greengrass.

  9. Publication de la fonction Lambda :

    1. À partir desActionsen haut de la page, puis choisissezPublier une nouvelle version.

      Capture d'écran du menu Actions avec l'option Publier une nouvelle version mise en évidence.
    2. Dans Description de la version, saisissez First version, puis choisissez Publish.

      Capture d'écran avec le champ Description de la version défini sur First version (Première version) et le bouton Publish (Publication) sélectionné.
  10. Création d'unaliaspour la fonction Lambdaversion :

    Note

    Les groupes Greengrass peuvent référencer une fonction Lambda par alias (recommandé) ou par version. L'utilisation d'un alias facilite la gestion des mises à jour de code, car vous n'avez pas besoin de changer votre table d'abonnement ou votre définition de groupe lorsque le code de la fonction est mise à jour. Au lieu de cela, il vous suffit de pointer l'alias vers la nouvelle version de la fonction.

    1. À partir desActionsen haut de la page, puis choisissezCréer un alias.

      Capture d'écran du menu Actions défini sur Créer un alias.
    2. Nommez l'alias.GG_HelloWorld, définissez la version sur1(qui correspond à la version que vous venez de publier), puis choisissezEnregistrer.

      Note

      AWS IoT Greengrassne prend pas en charge les alias Lambda pour$LATESTversions.

       

      Capture d'écran de Créer un alias avec le champ Nom défini sur 1 alias avec le champ Nom défini sur :HelloWorld, et le champ Version défini sur 1.