déployer une API REST Flask serverless sur AWS Lambda avec Serverless Framework
25/01/2026
déployer une API REST Flask serverless sur AWS Lambda avec Serverless Framework
Vous êtes développeur Python ou architecte technique et souhaitez passer vos microservices Flask en mode serverless pour gagner en scalabilité, réduire les coûts d’infrastructure et simplifier la maintenance ? Ce guide détaillé vous accompagne pas à pas pour :
- Installer et configurer le Serverless Framework
- Packager une application Flask
- Déployer sur AWS Lambda
- Mesurer l’impact en termes de performances et de coûts
Ce tutoriel inclut des snippets, des commandes CLI, des chiffres concrets et des astuces de pro.
1. Prérequis
- Node.js ≥ 14 et npm
- Compte AWS avec droits
iam:PassRoleetlambda:CreateFunction - Python 3.8+ installé localement
- Serveur Flask simple (fichier
app.py)
2. Installation et configuration du Serverless Framework
npm install -g serverless
Puis configurez vos identifiants AWS :
serverless config credentials --provider aws --key VOTRE_AWS_KEY --secret VOTRE_AWS_SECRET --profile default
3. Structure du projet et code Flask
Créez ce projet minimaliste :
my-flask-api/
├── app.py
└── serverless.yml
app.py :
from flask import Flask, jsonify app = Flask(__name__) @app.route('/hello') def hello(): return jsonify(message="Hello Serverless Flask!")
serverless.yml :
service: flask-serverless provider: name: aws runtime: python3.8 region: eu-west-1 stage: prod memorySize: 512 timeout: 10 functions: api: handler: wsgi_handler.handler events: - http: ANY / - http: 'ANY {proxy+}' plugins: - serverless-wsgi - serverless-python-requirements custom: wsgi: app: app.app packRequirements: false pythonRequirements: dockerizePip: true slim: true
4. Déploiement et tests
cd my-flask-api
serverless deploy -v
À la fin, vous obtenez l’URL de votre API. Testez :
curl https://xxxxxx.execute-api.eu-west-1.amazonaws.com/prod/hello
# {"message":"Hello Serverless Flask!"}
5. Optimisations performances et sécurité
- Minimiser la taille du package avec
slim: trueet exclure les dépendances inutiles. - Utiliser des layers pour partager des packages entre fonctions.
- Réduire la latence de cold start en choisissant
memorySizeadapté (512 Mo → ~200 ms). - Limiter les permissions IAM et activer AWS X-Ray pour tracer les appels.
6. Mesurer l’impact : données concrètes
| Type d’appel | Latency moyenne | Coût pour 1 M requêtes |
|---|---|---|
| Cold start | ~220 ms | ~0,20 $ (Lambda + API Gateway) |
| Warm start | ~35 ms |
Bonnes pratiques pour un pipeline CI/CD fiable
- Intégrer GitHub Actions ou Jenkins pour tests et déploiement automatisé.
- Versionner le
serverless.ymlet vosrequirements.txt. - Surveiller régulièrement avec Amazon CloudWatch.
Conclusion
En quelques commandes, vous disposez désormais d’une API Flask ultra-scalable, facturée à l’usage et prête pour un trafic variable. Cette approche serverless permet de se concentrer sur la valeur métier, tout en maîtrisant coûts et performances.
Envie d’accompagner votre projet application web ou d’en savoir plus sur l’architecture Python ? Contactez-nous pour un audit gratuit.

