AWS Lambda est un service de calcul sans serveur qui vous permet d'exécuter du code en réponse à des événements. Voici quelques caractéristiques clés :
- Sans serveur : Vous n'avez pas besoin de gérer des serveurs.
- Événements : Vous pouvez déclencher des fonctions Lambda en réponse à des événements provenant de divers services AWS.
- Scalabilité : Lambda s'adapte automatiquement à la charge de travail.
- Facturation : Vous payez uniquement pour le temps de calcul que vous utilisez.
Exemples de Ligne de Commande
Pour interagir avec AWS Lambda via la ligne de commande, vous pouvez utiliser l'AWS Command Line Interface (CLI). Voici quelques exemples de commandes avancées pour créer, déployer et gérer des fonctions Lambda.
Prérequis
Avant de commencer, assurez-vous que l'AWS CLI est installé et configuré sur votre machine. Vous pouvez configurer l'AWS CLI avec la commande suivante :
aws configure
Vous devrez fournir votre clé d'accès AWS, votre clé secrète, la région par défaut et le format de sortie.
Créer une Fonction Lambda
Pour créer une fonction Lambda, vous devez d'abord créer un rôle IAM avec les permissions nécessaires. Ensuite, vous pouvez créer la fonction Lambda.
- Créer un Rôle IAM :
aws iam create-role --role-name lambda-ex --assume-role-policy-document file://trust-policy.json
Le fichier trust-policy.json
pourrait ressembler à ceci :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
- Attacher une Politique au Rôle :
aws iam attach-role-policy --role-name lambda-ex --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
- Créer la Fonction Lambda :
aws lambda create-function --function-name my-lambda-function \ --zip-file fileb://function.zip --handler index.handler --runtime nodejs14.x \ --role arn:aws:iam::123456789012:role/lambda-ex
Le fichier function.zip
doit contenir votre code de fonction Lambda. Par exemple, pour une fonction Node.js, vous pourriez avoir un fichier index.js
avec le contenu suivant :
exports.handler = async (event) => { const response = { statusCode: 200, body: JSON.stringify('Hello from Lambda!'), }; return response; };
Déployer une Fonction Lambda
Pour mettre à jour le code d'une fonction Lambda existante :
aws lambda update-function-code --function-name my-lambda-function --zip-file fileb://function.zip
Invoquer une Fonction Lambda
Pour invoquer une fonction Lambda :
aws lambda invoke --function-name my-lambda-function output.txt
Le fichier output.txt
contiendra la réponse de la fonction Lambda.
Configurer un Déclencheur (Trigger)
Pour configurer un déclencheur pour une fonction Lambda, par exemple, un déclencheur S3 :
- Créer un Bucket S3 :
aws s3api create-bucket --bucket my-bucket --region us-east-1
- Configurer le Déclencheur S3 :
aws s3api put-bucket-notification-configuration --bucket my-bucket --notification-configuration file://notification-config.json
Le fichier notification-config.json
pourrait ressembler à ceci :
{ "LambdaFunctionConfigurations": [ { "LambdaFunctionArn": "arn:aws:lambda:us-east-1:123456789012:function:my-lambda-function", "Events": ["s3:ObjectCreated:*"], "Filter": { "Key": { "FilterRules": [ { "Name": "prefix", "Value": "uploads/" } ] } } } ] }
Lister les Fonctions Lambda
Pour lister toutes les fonctions Lambda :
aws lambda list-functions
Supprimer une Fonction Lambda
Pour supprimer une fonction Lambda :
aws lambda delete-function --function-name my-lambda-function
Conclusion
AWS Lambda est un service puissant pour exécuter du code sans serveur en réponse à des événements. En utilisant l'AWS CLI, vous pouvez automatiser et simplifier la création, le déploiement et la gestion des fonctions Lambda. Ces exemples de commandes vous donnent un bon point de départ pour commencer à utiliser AWS Lambda via la ligne de commande.