Introduction à AWS Lambda : le guide complet pour débutants et développeurs
Posté le 23 mars 2026 • 6 min de lecture • 1 258 motsAWS Lambda est souvent l’un des premiers services que l’on découvre quand on s’intéresse au serverless sur AWS. Et pour cause : la promesse est très séduisante.

AWS Lambda est un service de calcul serverless lancé par Amazon en 2014. L’idée est simple : on fournit une fonction (un morceau de code), et AWS l’exécute à la demande, sans qu’on aie à gérer le moindre serveur. Vous n’avez pas de serveur à provisionner, pas d’OS à maintenir, pas d’autoscaling à configurer à la main.
Le mot serverless peut prêter à confusion — des serveurs, il y en a bien sûr. Sauf qu’ils sont entièrement gérés par AWS. Nous ne voyons que le code.
Lambda supporte de nombreux langages : Go, Python, Node.js, Java, Ruby, .NET, et même des runtimes personnalisés via l’API Lambda Runtime.
Le modèle de fonctionnement de Lambda repose sur trois éléments :
Lambda ne tourne pas en permanence. Il est déclenché par un événement. Cet événement peut venir de nombreuses sources AWS :
| Source | Exemple |
|---|---|
| API Gateway | Un appel HTTP GET /users |
| S3 | Un fichier uploadé dans un bucket |
| SQS / SNS | Un message posté dans une queue |
| EventBridge | Un événement planifié (cron) |
| DynamoDB Streams | Une modification dans une table |
| CloudFront | Lambda@Edge pour manipuler les requêtes |
C’est le code. Il reçoit un événement (les données du déclencheur) et un contexte (les métadonnées d’exécution : ID de requête, timeout restant, etc.).
AWS alloue un environnement d’exécution (CPU + RAM), exécute une fonction, puis libère les ressources. Si plusieurs requêtes arrivent en même temps, Lambda scale horizontalement et crée plusieurs instances en parallèle — automatiquement.
Voici un exemple d’architecture classique : une API REST serverless avec Lambda au centre.
┌─────────────┐ ┌─────────────────┐ ┌──────────────┐
│ Client │──────▶ │ API Gateway │──────▶ │ AWS Lambda │
│ (navigateur │ HTTPS │ (point d'entrée│ event │ (ta logique │
│ ou mobile) │ │ HTTP/REST) │ │ métier) │
└─────────────┘ └─────────────────┘ └──────┬───────┘
│
┌──────────────────────────┤
│ │
┌────────▼──────┐ ┌─────────▼──────┐
│ DynamoDB │ │ S3 │
│ (données) │ │ (fichiers) │
└───────────────┘ └────────────────┘Ce pattern — API Gateway + Lambda + DynamoDB — est l’une des architectures serverless les plus répandues sur AWS. Elle est scalable, économique pour les workloads irréguliers, et ne nécessite aucun serveur à maintenir.
github.com/aws/aws-lambda-gopackage main
import (
"context"
"fmt"
"github.com/aws/aws-lambda-go/lambda"
)
// Event représente la structure de l'événement entrant
type Event struct {
Name string `json:"name"`
}
// Response est la structure retournée par la fonction
type Response struct {
Message string `json:"message"`
}
// Handler est la fonction principale exécutée par Lambda
func Handler(ctx context.Context, event Event) (Response, error) {
if event.Name == "" {
event.Name = "monde"
}
return Response{
Message: fmt.Sprintf("Bonjour, %s ! Tu es sur AWS Lambda.", event.Name),
}, nil
}
func main() {
lambda.Start(Handler)
}Lambda sur Go nécessite un binaire compilé pour Linux/amd64 (ou arm64 si on utilise Graviton) :
# Compilation pour Linux
GOOS=linux GOARCH=amd64 go build -o bootstrap main.go
# Création du zip de déploiement
zip function.zip bootstrap
# Déploiement via AWS CLI
aws lambda create-function \
--function-name ma-premiere-lambda \
--runtime provided.al2 \
--handler bootstrap \
--role arn:aws:iam::123456789012:role/lambda-role \
--zip-file fileb://function.zipNote : depuis Go 1.18, AWS recommande d’utiliser le runtime
provided.al2(Amazon Linux 2) avec un binaire nommébootstrap.
aws lambda invoke \
--function-name ma-premiere-lambda \
--payload '{"name": "Alice"}' \
response.json
cat response.json
# {"message":"Bonjour, Alice ! Tu es sur AWS Lambda."}C’est l’usage le plus courant. Couplé à API Gateway, Lambda permet de créer des endpoints HTTP sans gérer de serveur web. Idéal pour les microservices ou les backends mobiles.
Un utilisateur uploade une image dans S3 → Lambda se déclenche automatiquement → redimensionne l’image → stocke les versions dans un autre bucket. Zéro polling, zéro serveur idle.
S3 (upload) ──▶ Lambda (resize) ──▶ S3 (versions)Avec EventBridge Scheduler, on déclenche une Lambda à intervalles réguliers : nettoyage de base de données, envoi de rapports, synchronisation de données. L’équivalent serverless d’un cron job.
Couplé à SQS, Lambda consomme les messages d’une queue de façon asynchrone et scalable. Parfait pour les pipelines de traitement de données ou les systèmes d’événements.
Lambda@Edge est une extension d’AWS Lambda qui permet d’exécuter du code à proximité des utilisateurs finaux via le réseau de diffusion de contenu Amazon CloudFront. Lambda peut s’exécuter directement dans les Points of Presence CloudFront, au plus proche de l’utilisateur. Cas d’usage : redirection A/B testing, manipulation des headers HTTP, authentification à la périphérie.
Lambda est puissant, mais il a des contraintes à anticiper dès la conception :
| Limite | Valeur |
|---|---|
| Durée maximale d’exécution | 15 minutes |
| Mémoire allouable | 128 MB à 10 240 MB |
| Taille du package de déploiement | 50 MB (zip), 250 MB (décompressé) |
Espace disque temporaire (/tmp) | 512 MB (jusqu’à 10 GB configurable) |
| Concurrence par défaut | 1 000 exécutions simultanées par région |
Lorsque Lambda crée une nouvelle instance (après une période d’inactivité ou pour scaler), il y a un temps d’initialisation appelé cold start. En Go, ce cold start est particulièrement faible (< 100ms en général), ce qui en fait un excellent choix pour Lambda.
Pour les applications sensibles à la latence, tu peux utiliser les Provisioned Concurrency pour maintenir des instances “chaudes” en permanence.
C’est aussi un très bon outil pour des petites briques très ciblées, même dans des architectures qui ne sont pas entièrement serverless.
Lambda facture sur deux dimensions :
Exemple concret : une fonction de 128 MB qui s’exécute en 200ms, appelée 5 millions de fois par mois :
Requêtes : (5M - 1M gratuit) × 0,20$ / 1M = 0,80$
Durée : 5M × 0,2s × 0,128 GB × 0,0000166667$/GB-s ≈ 2,13$
Total : ~2,93$ / moisPour des workloads irréguliers ou faible volume, Lambda est souvent bien moins cher qu’une instance EC2 qui tourne 24h/24.
AWS Lambda a changé la façon de concevoir les architectures cloud. En éliminant la gestion des serveurs, il permet de se concentrer sur la logique métier, de scaler sans effort, et de ne payer que ce qu’on consomme réellement.
Ce qu’on a vu dans cet article :
Lambda n’est pas la solution universelle — pour des traitements longs, des applications avec état complexe, ou des workloads constants à forte charge, EC2 ou ECS/Fargate seront souvent plus adaptés. Mais pour démarrer vite, scaler facilement et garder les coûts sous contrôle, c’est un outil redoutable.