Fonctions Lambda : environnements d’exécution, déclencheurs et gestionnaires
Écrivez une fonction Lambda, choisissez un environnement d’exécution, configurez la mémoire et le délai d’expiration, puis reliez-la à un événement S3 ou à un déclencheur API Gateway.
Fonctions Lambda : environnements d’exécution, déclencheurs et gestionnaires est une leçon Cloud & IT Cert Prep gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Cloud & IT Cert Prep, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Cloud & IT Cert Prep comprend 4 leçons au total.
Qu’est-ce qu’AWS Lambda ?
AWS Lambda est un service de calcul sans serveur qui exécute votre code en réponse à des événements, sans vous obliger à provisionner ou à gérer des serveurs. Vous payez uniquement le temps de calcul consommé, mesuré en millisecondes, ce qui rend Lambda extrêmement économique pour les charges de travail sporadiques et déclenchées par des événements. Lambda ajuste automatiquement sa capacité, de zéro à des milliers d’exécutions simultanées, en fonction des événements entrants.
Environnements d’exécution pris en charge
Lambda prend en charge des environnements d’exécution gérés, notamment Python, Node.js, Java, Go, Ruby, .NET, et bien d’autres. AWS gère ces environnements et applique les correctifs de sécurité. Pour les langages ou les versions d’environnement d’exécution qui ne sont pas pris en charge nativement, vous pouvez fournir un environnement d’exécution personnalisé au moyen d’un exécutable bootstrap, ou empaqueter votre fonction dans une image de conteneur (jusqu’à 10 Go) plutôt que dans un paquet de déploiement ZIP.
La fonction gestionnaire de Lambda
Chaque fonction Lambda possède un gestionnaire : le point d’entrée que votre code doit exporter. AWS appelle le gestionnaire avec deux arguments : l’objet événement (les données d’entrée du déclencheur) et un objet contexte (les métadonnées sur l’invocation, comme le nom de la fonction, le temps restant et l’ID de la demande). Le gestionnaire renvoie une réponse qui, selon le type d’invocation, peut être transmise à l’appelant.
# Python handler example
def lambda_handler(event, context):
# event contains the trigger payload
bucket = event['Records'][0]['s3']['bucket']['name']
key = event['Records'][0]['s3']['object']['key']
print(f'Processing {key} from {bucket}')
return {
'statusCode': 200,
'body': 'Processed successfully'
}Mémoire, délai d’expiration et stockage éphémère
Lambda vous permet de configurer la mémoire de 128 MB à 10 240 MB. Le CPU est alloué proportionnellement à la mémoire : plus la mémoire est importante, plus la puissance du CPU est élevée. Le délai d’expiration peut être défini entre 1 seconde et 15 minutes ; si votre fonction dépasse cette durée, Lambda l’arrête. Vous disposez également d’un stockage éphémère /tmp (512 MB par défaut, configurable jusqu’à 10 GB) pour les fichiers temporaires au cours d’une même invocation. Ce stockage n’est pas conservé d’une invocation à l’autre.
Invocation synchrone ou asynchrone
Les fonctions Lambda peuvent être invoquées de manière synchrone (l’appelant attend le résultat — utilisé par la passerelle d’API et ALB) ou asynchrone (l’appelant n’attend pas — utilisé par les événements S3 et SNS). En mode asynchrone, Lambda réessaie les exécutions échouées jusqu’à deux fois et peut acheminer les événements échoués vers une file d’attente de lettres mortes (SQS ou SNS) ou un bus d’événements EventBridge. Le choix du mode d’invocation approprié influence la conception de la gestion des erreurs.
Déclencheurs Lambda courants
Lambda s’intègre nativement à des dizaines de services AWS comme sources d’événements (déclencheurs) :
- Passerelle d’API / ALB : requêtes HTTP (synchrones)
- Stockage d’objets S3 : événements de création ou de suppression d’objets (asynchrones)
- Flux DynamoDB / Kinesis : flux d’enregistrements (interrogation périodique, synchrone)
- SQS : messages de file d’attente (interrogation périodique)
- SNS : notifications de rubriques (asynchrones)
- EventBridge : événements planifiés ou personnalisés
- Journaux CloudWatch : filtres d’abonnement aux journaux
Rôle d’exécution IAM
Chaque fonction Lambda doit disposer d’un rôle d’exécution IAM qui accorde à la fonction les autorisations nécessaires pour appeler d’autres services AWS. Par exemple, si votre fonction lit des données dans S3 et écrit dans DynamoDB, le rôle d’exécution doit disposer des autorisations s3:GetObject et dynamodb:PutItem. Appliquez le principe du moindre privilège : accordez uniquement les autorisations dont votre fonction a réellement besoin. Le rôle d’exécution de base doit également inclure logs:CreateLogGroup, logs:CreateLogStream et logs:PutLogEvents pour les journaux CloudWatch.
Paquets de déploiement et limites de taille
Lambda accepte deux formats de déploiement : un fichier ZIP (50 MB compressé, 250 MB décompressé) téléversé directement ou via S3, et une image de conteneur (jusqu’à 10 GB) stockée dans Amazon ECR. Les paquets ZIP sont plus rapides à déployer et conviennent bien aux petites fonctions et aux couches Lambda. Les images de conteneur sont idéales pour les ensembles volumineux de dépendances ou pour les équipes qui utilisent déjà des flux de travail fondés sur Docker. Les deux formats peuvent utiliser les mêmes environnements d’exécution et le même modèle de gestionnaire.
# Deploy a ZIP package from S3
aws lambda update-function-code \
--function-name 'MyFunction' \
--s3-bucket 'my-lambda-packages' \
--s3-key 'my-function-v2.zip'Variables d’environnement et secrets
Transmettez la configuration à Lambda au moyen de variables d’environnement. Pour les valeurs sensibles (clés d’API, mots de passe de base de données), stockez-les dans AWS Secrets Manager ou dans Parameter Store, puis récupérez-les lors de l’initialisation de la fonction (en dehors du gestionnaire) afin de profiter de la réutilisation du contexte d’exécution. Ne codez jamais en dur les secrets dans le code de votre fonction ni les variables d’environnement en clair : utilisez le chiffrement KMS pour les variables d’environnement Lambda afin de les protéger au repos.
import boto3
import os
# Fetch secret once during cold start (outside handler)
ssm = boto3.client('ssm')
DB_PASSWORD = ssm.get_parameter(
Name=os.environ['DB_PASSWORD_PARAM'],
WithDecryption=True
)['Parameter']['Value']
def lambda_handler(event, context):
# DB_PASSWORD is already loaded; no SSM call on each invocation
passDémarrages à froid et réutilisation du contexte d’exécution
La première invocation d’une fonction Lambda après son déploiement ou après une période d’inactivité entraîne un démarrage à froid : AWS doit initialiser l’environnement d’exécution, télécharger votre paquet de déploiement et exécuter le code d’initialisation. Les invocations suivantes dans le même environnement d’exécution sont des démarrages à chaud et sont beaucoup plus rapides. Placez le code d’initialisation global (clients SDK, connexions à la base de données) en dehors du gestionnaire afin de réutiliser le contexte d’exécution lors des invocations à chaud.
Lambda dans un VPC
Par défaut, Lambda s’exécute dans un VPC géré par AWS et peut accéder à Internet, mais pas aux ressources de votre VPC privé. Pour accéder à une base de données RDS ou à un cluster ElastiCache dans un sous-réseau privé, configurez Lambda pour qu’il s’exécute dans votre VPC en indiquant les sous-réseaux et les groupes de sécurité. Les fonctions Lambda activées pour un VPC utilisent des ENI Hyperplane pour la mise en réseau (il n’est plus nécessaire de provisionner un ENI par fonction), ce qui élimine la pénalité historique de démarrage à froid des fonctions Lambda dans un VPC.
aws lambda update-function-configuration \
--function-name 'MyFunction' \
--vpc-config 'SubnetIds=subnet-aaa111,subnet-bbb222,SecurityGroupIds=sg-xyz'Vérification rapide
Vérifiez votre compréhension des concepts AWS Solutions Architect (SAA-C03) présentés dans cette leçon.
Récapitulatif de la leçon
Dans cette leçon, vous avez appris que les environnements d’exécution Lambda prennent en charge Python, Node.js, Java, Go et d’autres langages, avec des environnements d’exécution personnalisés et des images de conteneur pour les cas avancés ; que les déclencheurs, notamment la passerelle d’API (synchrone) et S3/SNS (asynchrones), définissent la façon dont les événements arrivent dans les fonctions Lambda ; et que le rôle d’exécution, les variables d’environnement et la configuration du VPC sont des éléments essentiels pour connecter de manière sécurisée Lambda à d’autres services AWS. Nous allons maintenant étudier la concurrence, la limitation et la concurrence réservée de Lambda.
Questions Fréquemment Posées
La leçon « Fonctions Lambda : environnements d’exécution, déclencheurs et gestionnaires » est-elle gratuite ?
Oui — le texte complet de « Fonctions Lambda : environnements d’exécution, déclencheurs et gestionnaires » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Cloud & IT Cert Prep, passe à CoddyKit PRO. Le cours Cloud & IT Cert Prep comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Fonctions Lambda : environnements d’exécution, déclencheurs et gestionnaires » ?
Écrivez une fonction Lambda, choisissez un environnement d’exécution, configurez la mémoire et le délai d’expiration, puis reliez-la à un événement S3 ou à un déclencheur API Gateway. Tu pratiques Cloud & IT Cert Prep avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Cloud & IT Cert Prep ?
Aucune expérience préalable n'est requise. Cloud & IT Cert Prep sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.
Combien de temps prend la leçon « Fonctions Lambda : environnements d’exécution, déclencheurs et gestionnaires » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Cloud & IT Cert Prep ?
Oui. Chaque leçon Cloud & IT Cert Prep inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Fonctions Lambda : environnements d’exécution, déclencheurs et gestionnaires
- Concurrence, limitation et concurrence réservée
- Couches Lambda et paquets de déploiement
- Lambda@Edge et modèles pilotés par les événements