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 de fonctions Lambda avec Python
Vous pouvez exécuter du code Python dans AWS Lambda. Lambda fournit des runtimes pour Python qui exécutent votre code afin de traiter des événements. Votre code s'exécute dans un environnement qui inclut le SDK pour Python (Boto3), avec les informations d'identification d'un rôle (IAM) que vous AWS Identity and Access Management gérez. Pour en savoir plus sur les versions du SDK incluses dans les environnements d'exécution Python, consultez. Versions du SDK incluses dans Runtime
Lambda prend en charge les runtimes Python suivants.
Python | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Nom | Identifiant | Système d’exploitation | Date d'obsolescence | Créer la fonction de blocage | Mettre à jour la fonction de blocage | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Python 3.12 |
|
Amazon Linux 2023 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Python 3.11 |
|
Amazon Linux 2 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Python 3.10 |
|
Amazon Linux 2 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Python 3.9 |
|
Amazon Linux 2 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Python 3.8 |
|
Amazon Linux 2 |
14 octobre 2024 |
28 février 2025 |
31 mars 2025 |
Note
Les informations sur l'environnement d'exécution contenues dans ce tableau font l'objet de mises à jour permanentes. Pour plus d'informations sur l'utilisation AWS des SDK dans Lambda, consultez la section AWS Gestion des SDK dans les fonctions Lambda dans Serverless
Pour créer une fonction Python
-
Ouvrez la console Lambda
. -
Sélectionnez Créer une fonction.
-
Configurez les paramètres suivants :
-
Nom de la fonction : saisissez le nom de la fonction.
-
Exécution : sélectionnez Python 3.12.
-
-
Sélectionnez Créer une fonction.
-
Pour configurer un événement de test, choisissez Test.
-
Dans Event name (Nom de l’événement), saisissez
test
. -
Sélectionnez Save Changes.
-
Pour invoquer la fonction, choisissez Test.
La console crée une fonction Lambda avec un seul fichier source nommé lambda_function
. Vous pouvez modifier ce fichier et ajouter d'autres fichiers dans l'éditeur de code intégré. Choisissez Save pour enregistrer les changements. Ensuite, pour exécuter votre code, choisissez Test.
Note
La console Lambda fournit un environnement AWS Cloud9 de développement intégré dans le navigateur. Vous pouvez également les utiliser AWS Cloud9 pour développer des fonctions Lambda dans votre propre environnement. Pour plus d'informations, consultez la section Utilisation des AWS Lambda fonctions AWS Toolkità l'aide du guide de AWS Cloud9 l'utilisateur.
Note
Pour démarrer le développement d'applications dans votre environnement local, déployez l'un des exemples d'applications disponibles dans le GitHub référentiel de ce guide.
Exemples d’applications Lambda en Python
-
blank-python
— Fonction Python qui montre l'utilisation de la journalisation, des variables d'environnement, du AWS X-Ray traçage, des couches, des tests unitaires et du AWS SDK.
Votre fonction Lambda est fournie avec un groupe de CloudWatch journaux Logs. La fonction runtime envoie les détails de chaque appel à CloudWatch Logs. Il relaie tous les journaux que votre fonction génère pendant l’invocation. Si votre fonction renvoie une erreur, Lambda met en forme l’erreur et la renvoie à l’appelant.
Rubriques
- Versions du SDK incluses dans Runtime
- Format de la réponse
- Arrêt progressif pour les extensions
- Gestionnaire de fonction Lambda en Python
- Travailler avec des archives de fichiers .zip pour les fonctions Lambda Python
- Déployer des fonctions Lambda en Python avec des images conteneurs
- Utilisation de couches pour les fonctions Lambda en Python
- Objet de contexte AWS Lambda dans Python
- Journalisation des fonctions AWS Lambda dans Python
- Test de la fonction AWS Lambda dans Python
- Erreurs de fonction AWS Lambda dans Python
- Instrumentation du code Python dans AWS Lambda
Versions du SDK incluses dans Runtime
La version du AWS SDK incluse dans le runtime Python dépend de la version d'exécution et de votre Région AWS. Pour trouver la version du SDK incluse dans le moteur d'exécution que vous utilisez, créez une fonction Lambda avec le code suivant.
import boto3 import botocore def lambda_handler(event, context): print(f'boto3 version: {boto3.__version__}') print(f'botocore version: {botocore.__version__}')
Format de la réponse
Dans les environnements d'exécution Python 3.12 et versions ultérieures, les fonctions renvoient des caractères Unicode dans le cadre de leur réponse JSON. Les environnements d'exécution Python antérieurs renvoyaient des séquences échappées pour les caractères Unicode dans les réponses. Par exemple, dans Python 3.11, si vous renvoyez une chaîne Unicode telle que « こんにちは », elle échappe le caractères Unicode et renvoie « \u3053\u3093\u306b\u3061\u306f ». L’environnement d’exécution Python 3.12 renvoie le « こんにちは » d'origine.
L'utilisation de réponses Unicode réduit la taille des réponses Lambda, ce qui facilite l'adaptation de réponses plus importantes à la taille de charge utile maximale de 6 Mo pour les fonctions synchrones. Dans l'exemple précédent, la version échappée est de 32 octets, contre 17 octets pour la chaîne Unicode.
Lors de la mise à niveau vers Python 3.12, vous devrez peut-être ajuster votre code pour tenir compte du nouveau format de réponse. Si l'appelant s'attend à une chaîne Unicode échappée, vous devez soit ajouter du code à la fonction de renvoi pour échapper l'Unicode manuellement, soit ajuster l'appelant pour qu'il gère le retour Unicode.
Arrêt progressif pour les extensions
Les environnements d’exécution Python 3.12 et versions ultérieures offrent des fonctionnalités d'arrêt progressif améliorées pour les fonctions dotées d'extensions externes. Quand Lambda arrête l'exécution, il envoie un signal SIGTERM
à l'exécution, puis un événement SHUTDOWN
à chaque extension externe enregistrée. Vous pouvez intercepter le signal SIGTERM
dans votre fonction Lambda et nettoyer les ressources telles que les connexions de base de données créées par la fonction.
Pour en savoir plus sur le cycle de vie de l'environnement d'exécution, veuillez consulter Environnement d’exécution Lambda. Pour des exemples d'utilisation de l'arrêt progressif avec des extensions, consultez le GitHub référentiel AWS Samples