Introducció a AWS Lambda
AWS Lambda és un servei de computació sense servidor que permet executar codi en resposta a esdeveniments i gestionar automàticament els recursos de computació subjacents. Amb Lambda, no cal provisionar ni gestionar servidors, la qual cosa permet centrar-se en l'escriptura del codi.
Conceptes Clau
- Funció Lambda: Un fragment de codi que s'executa en resposta a un esdeveniment.
- Esdeveniment: Una acció o canvi d'estat que desencadena l'execució d'una funció Lambda.
- Temps d'execució: L'entorn en què s'executa la funció Lambda, que inclou el sistema operatiu, el llenguatge de programació i les biblioteques necessàries.
- Trigger: Un servei d'AWS o una aplicació que invoca la funció Lambda.
Característiques Principals
- Execució basada en esdeveniments: Lambda pot ser invocat per diversos serveis d'AWS com S3, DynamoDB, Kinesis, SNS, etc.
- Escalabilitat automàtica: Lambda escala automàticament en funció del nombre de sol·licituds.
- Pagament per ús: Només es paga pel temps de computació utilitzat, calculat en mil·lisegons.
Configuració d'una Funció Lambda
Pas 1: Crear una Funció Lambda
- Accedeix a la Consola de Gestió d'AWS.
- Navega a AWS Lambda.
- Clica a "Create function".
- Selecciona "Author from scratch".
- Omple els camps necessaris:
- Function name: Nom de la funció.
- Runtime: Selecciona el llenguatge de programació (p. ex., Python 3.8).
- Role: Selecciona un rol existent o crea'n un de nou amb els permisos necessaris.
Pas 2: Escriure el Codi de la Funció
import json def lambda_handler(event, context): # Exemple de codi que processa l'esdeveniment message = 'Hello, ' + event['name'] return { 'statusCode': 200, 'body': json.dumps(message) }
Pas 3: Configurar un Trigger
- A la pàgina de la funció Lambda, clica a "Add trigger".
- Selecciona el servei que desencadenarà la funció (p. ex., S3, DynamoDB).
- Configura els paràmetres del trigger segons el servei seleccionat.
- Clica a "Add".
Pas 4: Provar la Funció
- A la pàgina de la funció Lambda, clica a "Test".
- Crea un esdeveniment de prova:
- Event name: Nom de l'esdeveniment de prova.
- Event JSON: Proporciona un JSON d'exemple per a l'esdeveniment.
{ "name": "World" }
- Clica a "Create" i després a "Test".
Pas 5: Monitoritzar la Funció
- CloudWatch Logs: Lambda envia automàticament els logs a Amazon CloudWatch. Pots veure'ls a la consola de CloudWatch.
- Metrics: Lambda proporciona mètriques com el nombre d'invocacions, la durada de l'execució, i els errors.
Exercicis Pràctics
Exercici 1: Crear una Funció Lambda que Processi un Fitxer S3
Descripció: Crea una funció Lambda que es desencadeni quan es carregui un fitxer a un bucket S3 i que escrigui un log amb el nom del fitxer.
Passos:
- Crea un bucket S3.
- Crea una funció Lambda amb el següent codi:
import json import logging logger = logging.getLogger() logger.setLevel(logging.INFO) def lambda_handler(event, context): # Obtenir el nom del fitxer de l'esdeveniment bucket = event['Records'][0]['s3']['bucket']['name'] key = event['Records'][0]['s3']['object']['key'] logger.info(f'Fitxer carregat: {key} al bucket: {bucket}') return { 'statusCode': 200, 'body': json.dumps('Processat correctament') }
- Configura S3 com a trigger per a la funció Lambda.
- Carrega un fitxer al bucket S3 i verifica els logs a CloudWatch.
Solució de l'Exercici 1
import json import logging logger = logging.getLogger() logger.setLevel(logging.INFO) def lambda_handler(event, context): # Obtenir el nom del fitxer de l'esdeveniment bucket = event['Records'][0]['s3']['bucket']['name'] key = event['Records'][0]['s3']['object']['key'] logger.info(f'Fitxer carregat: {key} al bucket: {bucket}') return { 'statusCode': 200, 'body': json.dumps('Processat correctament') }
Errors Comuns i Consells
- Permisos insuficients: Assegura't que el rol associat a la funció Lambda té els permisos necessaris per accedir als serveis que utilitza.
- Esdeveniments mal formats: Verifica que l'esdeveniment de prova o el trigger proporcionen les dades en el format esperat.
- Temps d'execució: Selecciona el temps d'execució adequat per a la teva funció. Si utilitzes biblioteques específiques, assegura't que estan disponibles en el temps d'execució seleccionat.
Resum
En aquesta secció, hem après què és AWS Lambda, com crear i configurar una funció Lambda, i com integrar-la amb altres serveis d'AWS. També hem vist un exemple pràctic i hem discutit alguns errors comuns i consells per evitar-los. Amb aquests coneixements, estàs preparat per començar a utilitzar AWS Lambda en els teus projectes.