Función Lambda Delete en Python para DynamoDB Serverless
Clase 17 de 25 • Curso de Serverless Framework en AWS
Resumen
¿Cómo crear una función Lambda 'delete' con Python en un proyecto serverless?
Crear funciones Lambda para eliminar datos de una base de datos DynamoDB es un paso crucial en el desarrollo de aplicaciones serverless. A lo largo de este proyecto, hemos trabajado en crear, actualizar e insertar registros, pero ahora nos enfocaremos en la eliminación programática de elementos no deseados.
¿Cómo estructurar el handler para la función 'delete'?
Para empezar, necesitamos definir el handler en Python de la función delete. Comenzamos importando las dependencias necesarias: boto3
para interactuar con AWS, json
para manejar datos JSON y os
para acceder a las variables de entorno del sistema operativo.
import boto3
import json
import os
def delete_users(event, context):
user_id = event['pathParameters']['id']
client = boto3.resource('dynamodb')
table = client.Table('YourTableName')
response = table.delete_item(
Key={
'primaryKey': user_id
}
)
return {
'statusCode': response['ResponseMetadata']['HTTPStatusCode'],
'body': json.dumps({'message': f'Usuario {user_id} eliminado'})
}
¿Cómo manejar parámetros y la lógica de HTTP en Python?
El manejo de los path parameters
es esencial. En el handler, podemos acceder a estos parámetros mediante event['pathParameters']
. Esto nos permite extraer el userId
que deseamos eliminar y proceder con la operación delete
.
La operación delete_item
en boto3
es bastante directa, necesaria para borrar el ítem correspondiente en DynamoDB. Utilizamos el userId
como clave primaria para llevar a cabo esta operación.
¿Cómo configurar el serverless YAML?
Es crucial asegurar que el serverless.yml
está configurado de manera adecuada para manejar runtimes diferentes, en este caso, Python 3.8:
functions:
deleteUsers:
handler: deleteUsers.handler
runtime: python3.8
events:
- http:
path: users/{id}
method: delete
¿Cómo desplegar y resolver errores comunes?
Para desplegar la función Lambda, se utiliza sls deploy
. A menudo surgen errores, como la referencia incorrecta a un archivo de JavaScript o typos en nombres de tablas. Herramientas como CloudWatch son fundamentales para depurar y obtener logs detallados.
Durante el desarrollo, es común enfrentar errores como 502 bad gateway
o errores de configuración en las tablas de DynamoDB. Estas situaciones deben verse como oportunidades de aprendizaje, ya que cada error nos permite mejorar y corregir nuestra implementación.
¿Cómo interactuar con AWS para probar y verificar acciones?
Para probar tus funciones Lambda, herramientas como Postman son ideales para enviar requests HTTP y verificar las respuestas. Ingresar el userId
en la URL y observar la respuesta nos ayuda a determinar si la eliminación fue exitosa. Utilizar CloudWatch ayuda a revisar logs cuando algo no va según lo planificado.
Finalmente, seguir aprendiendo a usar herramientas serverless es vital para el desarrollo de aplicaciones modernas en la nube. No dudes en investigar más sobre otros servicios de AWS que pueden complementarse con aplicaciones serverless y seguir integrando estos conocimientos en nuevos proyectos. ¡Ánimo! ¡El aprendizaje nunca se detiene!