développer et déployer une api rest serverless en python sur aws lambda
26/10/2025
Avec la montée en puissance des architectures serverless, créer une API REST sans gérer de serveurs devient un atout majeur pour les startups et PME. Dans ce tutoriel, nous verrons comment développer et déployer en quelques étapes une API REST en Python sur AWS Lambda, afin de réduire vos coûts d’infrastructure et d’assurer une scalabilité automatique.
1. Préparer l’environnement de développement
-
Installer AWS CLI
brew install awscli # macOS sudo apt-get install awscli # UbuntuPuis configurez vos identifiants :
aws configure. -
Installer AWS SAM CLI
brew tap aws/tap brew install aws-sam-cliLe SAM CLI simplifie la création et le déploiement de fonctions Lambda.
-
Créer un environnement virtuel Python
python3 -m venv venv source venv/bin/activate pip install boto3
2. Développer la fonction Lambda
2.1. Structure du projet
my-api/
├── app.py
├── requirements.txt
└── template.yaml
2.2. Code de l’API (app.py)
import json
import boto3
from boto3.dynamodb.conditions import Key
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('Items')
def lambda_handler(event, context):
http_method = event['httpMethod']
if http_method == 'GET':
resp = table.scan()
return {'statusCode': 200, 'body': json.dumps(resp['Items'])}
elif http_method == 'POST':
data = json.loads(event['body'])
table.put_item(Item=data)
return {'statusCode': 201, 'body': json.dumps({'message': 'Item créé'})}
else:
return {'statusCode': 405, 'body': 'Méthode non autorisée'}
Ce handler gère deux routes : GET /items et POST /items.
3. Définir l’infrastructure avec AWS SAM
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Resources:
ItemsFunction:
Type: AWS::Serverless::Function
Properties:
Handler: app.lambda_handler
Runtime: python3.9
Policies:
- DynamoDBCrudPolicy:
TableName: Items
Events:
ApiGetItems:
Type: Api
Properties:
Path: /items
Method: get
ApiPostItems:
Type: Api
Properties:
Path: /items
Method: post
4. Déploiement et tests
- Build :
sam build - Déploy :
sam deploy --guided - Tester localement :
sam local start-api
Après déploiement, notez :
- Cold start moyen : ~120 ms (python3.9).
- Coût estimé : 0,20 $ par million d’invocations (source AWS).
5. Bonnes pratiques pour vos API serverless
- Gestion des versions : utilisez les aliases Lambda pour déployer progressivement.
- Sécurité : limitez les permissions IAM à la stricte nécessité.
- Observabilité : activez les logs CloudWatch et installez un monitoring adapté.
- Tests locaux : simulez les événements API Gateway avec SAM CLI.
- Scalabilité : ajustez la mémoire Lambda pour optimiser le ratio coût/performance.
Conclusion
Vous savez maintenant créer et déployer une API REST serverless en Python sur AWS Lambda, avec un déploiement automatisé et des bonnes pratiques pour la production. Cette approche vous libère de la gestion serveur et assure une montée en charge instantanée.
Contactez notre équipe si vous souhaitez accélérer votre migration vers le serverless et optimiser vos coûts.

