Imaginez que vous deviez exécuter un script Python sur la fonction AWS Lambda et que vous obteniez cette erreur ?
{ "errorMessage": "Unable to import module 'lambda_function': No module named 'pandas', "errorType": "Runtime.ImportModuleError" ... }
Ne vous inquiétez pas, c'est une erreur courante et je ne vais pas faire aussi longtemps
Il existe plusieurs façons, mais je vais vous donner le moyen le plus simple d'importer des pandas dans la fonction AWS Lambda : ajouter une couche Lambda ?
C'est un ? couche de fromage dans la fonction Lambda contenant du code supplémentaire comme des bibliothèques, des dépendances, etc.
Les couches AWS Lambda sont comme des éléments de base pour vos fonctions. Imaginez que vous ayez besoin d'outils supplémentaires (comme la bibliothèque Pandas) pour mener à bien un projet. Au lieu de regrouper tous ces outils dans chaque projet (ce qui fait perdre de l'espace et du temps), AWS vous permet de créer des couches d'outils (bibliothèques, dépendances ou code partagé). Ces couches se trouvent en dehors de votre fonction principale mais sont toujours disponibles lorsque votre fonction en a besoin.
En bref, les couches Lambda vous aident :
Économisez de l'espace dans votre code en séparant la logique principale des bibliothèques supplémentaires.
Réutilisez les bibliothèques et le code dans plusieurs fonctions Lambda.
Mettez à jour ou gérez facilement vos dépendances sans modifier le code de votre fonction principale.
Considérez les couches comme une boîte de stockage supplémentaire attachée à votre fonction Lambda, contenant tout ce dont votre fonction a besoin pour fonctionner correctement. Vous pouvez empiler plusieurs couches sur votre fonction sans encombrer votre code principal.
Il ne faut que 3 étapes pour exécuter Pandas dans votre fonction Lambda avec succès
Comme vous pouvez le voir, nous avons une option Couches sous le nom de notre fonction Lambda, dans mon cas, c'est "import-pandas-function" et le nombre de couches est 0
Cette étape est divisée en deux étapes car nous devons ajouter un script Python contenant du code Pandas et écrire un événement de test en JSON pour vérifier si le code s'exécute correctement.
import json import pandas as pd def lambda_handler(event, context): data = event.get('data', []) df = pd.DataFrame(data) if not df.empty: mean_value = df['column_name'].mean() result = { "mean_value": mean_value, "data_shape": df.shape, "summary": df.describe().to_dict() } else: result = { "message": "Empty DataFrame" } # Return the response return { 'statusCode': 200, 'body': json.dumps(result) }
{ "data": [ {"column_name": 10, "other_column": "A"}, {"column_name": 20, "other_column": "B"}, {"column_name": 30, "other_column": "C"}, {"column_name": 40, "other_column": "D"} ] }
Appuyez sur le bouton de test, vous avez probablement eu l'erreur :-
"errorMessage": "Impossible d'importer le module 'lambda_function' : aucun module nommé 'pandas',
"errorType": "Runtime.ImportModuleError"
...
Faites défiler jusqu'à votre fonction Lambda, vous pouvez probablement voir la section séparée "Couches" à la fin de la page
Après avoir cliqué sur "Ajouter un calque", vous pouvez voir la page qui comporte quelques sections "Paramètres d'exécution des fonctions" et "Choisir un calque"
Vous pouvez voir trois options dans la section « Choisir une couche », cliquez sur « Couches AWS ».
Après avoir sélectionné les couches AWS, vous pouvez voir la liste déroulante sous « Couches AWS ».
Dans une liste déroulante de « Couches AWS », sélectionnez -> AWSSDKPandas-Python312
Dans une liste déroulante de "Version", sélectionnez -> 13 (sélectionnez le plus)
cliquez sur le bouton "Ajouter"
Lorsque votre page est dirigée vers l'aperçu des fonctions, vous pouvez voir que la couche est ajoutée sous le nom de la fonction "import-pandas-function"
Vous avez obtenu la réponse "statusCode": 200
{ "statusCode": 200, "body": "{\"mean_value\": 25.0, \"data_shape\": [4, 2], \"summary\": {\"column_name\": {\"count\": 4.0, \"mean\": 25.0, \"std\": 12.909944487358056, \"min\": 10.0, \"25%\": 17.5, \"50%\": 25.0, \"75%\": 32.5, \"max\": 40.0}}}" }
Continuer à coder ?
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3