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

  1. Accedeix a la Consola de Gestió d'AWS.
  2. Navega a AWS Lambda.
  3. Clica a "Create function".
  4. Selecciona "Author from scratch".
  5. 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

  1. A la pàgina de la funció Lambda, clica a "Add trigger".
  2. Selecciona el servei que desencadenarà la funció (p. ex., S3, DynamoDB).
  3. Configura els paràmetres del trigger segons el servei seleccionat.
  4. Clica a "Add".

Pas 4: Provar la Funció

  1. A la pàgina de la funció Lambda, clica a "Test".
  2. 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"
    }
    
  3. 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:

  1. Crea un bucket S3.
  2. 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')
        }
    
  3. Configura S3 com a trigger per a la funció Lambda.
  4. 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.

© Copyright 2024. Tots els drets reservats