Serverless AWS Lambda en la práctica: el código y los comandos que realmente importan
Serverless AWS Lambda : lo esencial en un artículo — código real, diagramas y pasos concretos, extractos de un curso de 41 lecciones.
Sin teoría interminable aquí: abrimos la terminal y practicamos. Aquí lo esencial de Serverless AWS Lambda, extraído directamente de un curso completo de 41 lecciones — con código real que puedes copiar y pegar ahora.
- Crear una cuenta AWS
- Descubrir Serverless
- Funciones Lambda en profundidad
- API Gateway
- DynamoDB
Guía completa del proyecto final
Vista general de las fases
Fase 1
Fase 2
Fase 3
Fase 4
Fase 5
Fase 6
Fase 1 – Planificación
1.1 – Elegir tu tema
1.2 – Definir tus tablas DynamoDB
Dibuja un esquema de tus tablas con los atributos:
Table 1 : Produits ───────────────────────────────────── | productId (PK) | nom | categorie | prix | quantite | seuil_alerte | ───────────────────────────────────── Table 2 : Mouvements ───────────────────────────────────── | mouvementId (PK) | productId | type (entree/sortie) | quantite | date | ─────────────────────────────────────
• ¿Cuál es la clave de partición de cada tabla?
• ¿Necesito una clave de ordenación?
• ¿Cómo están relacionadas las tablas? (clave externa lógica)
• ¿Necesito un GSI para ciertas consultas?
1.3 – Definir tus endpoints API
Lista todos tus endpoints en una tabla:
| Método | Endpoint | Descripción | Body |
|---|---|---|---|
| GET | /produits | Listar todos los productos | – |
| GET | /produits/{id} | Obtener un producto | – |
| POST | /produits | Crear un producto | {"nom", "categorie", "prix", "quantite"} |
| PUT | /produits/{id} | Modificar un producto | {"nom", "prix", ...} |
| DELETE | /produits/{id} | Eliminar un producto | – |
| GET | /mouvements | Listar los movimientos | – |
| POST | /mouvements | Registrar un movimiento | {"productId", "type", "quantite"} |
1.4 – Dibujar la arquitectura
Utilisateur
│
▼
┌──────────┐ ┌───────────────┐ ┌──────────┐
│ S3 │ │ API Gateway │ │ DynamoDB │
│ Frontend │────▶│ REST API │────▶│ Tables │
│ HTML/JS │ │ /produits │ │ │
└──────────┘ │ /mouvements │ └──────────┘
└───────┬───────┘
│
┌────▼────┐
│ Lambda │
│ Python │
└─────────┘Fase 2 – Backend (SAM + Lambda)
2.1 – Inicializar el proyecto SAM
sam init --runtime python3.12 --name mon-projet-serverless --app-template hello-world
O crea manualmente la estructura:
mon-projet-serverless/
├── template.yaml
├── src/
│ ├── handlers/
│ │ ├── __init__.py
│ │ ├── produits.py
│ │ └── mouvements.py
│ ├── utils/
│ │ ├── __init__.py
│ │ ├── response.py
│ │ └── validation.py
│ └── requirements.txt
└── frontend/
├── index.html
├── style.css
└── app.js2.2 – Escribir el template.yaml
Instalar AWS CLI y configurar las credenciales
Objetivos pedagógicos
- Explicar el rol de AWS CLI
- Instalar AWS CLI en Windows, macOS y Linux
- Configurar tus credenciales con
aws configure - Usar perfiles nombrados para gestionar varias cuentas
- Verificar tu conexión con
aws sts get-caller-identity - Comprender dónde se almacenan las credenciales
- Ejecutar tus primeros comandos AWS
¿Qué es AWS CLI?
La AWS CLI (Command Line Interface) es una herramienta unificada que permite gestionar todos los servicios de AWS desde tu terminal. En lugar de hacer clic en la consola web, escribes comandos.
Rapidez
Ejecuta operaciones en una sola línea en lugar de navegar por varias pantallas.
Automatización
Integra los comandos en scripts Bash o PowerShell para automatizar tus tareas.
Reproducibilidad
Comparte tus comandos con tu equipo. Cada acción queda documentada y versionable.
Instalación de AWS CLI v2
Windows
Descarga y ejecuta el instalador MSI:
# Descargar el instalador https://awscli.amazonaws.com/AWSCLIV2.msi # O mediante la línea de comandos (PowerShell) msiexec.exe /i https://awscli.amazonaws.com/AWSCLIV2.msi
Sigue el asistente de instalación, acepta los valores predeterminados y haz clic en Install.
macOS
# Descargar el paquete curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg" # Instalar sudo installer -pkg AWSCLIV2.pkg -target /
Alternativa con Homebrew:
brew install awscli
Linux (Ubuntu/Debian)
# Descargar el archivo curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" # Descomprimir unzip awscliv2.zip # Instalar sudo ./aws/install
Verificar la instalación
En todos los sistemas, verifica que la instalación haya sido exitosa:
aws --version
aws-cli/2.15.x Python/3.11.x Windows/10 exe/AMD64
SAM CLI – Build, Deploy, Test
sam init, compilar con sam build, probar localmente con sam local y desplegar con sam deploy. Dominar el flujo completo de desarrollo serverless local.Objetivos pedagógicos
- Instalar y configurar SAM CLI
- Crear un nuevo proyecto serverless con
sam init - Compilar un proyecto con
sam build - Invocar una función localmente con
sam local invoke - Iniciar un servidor API local con
sam local start-api - Desplegar el proyecto en AWS con
sam deploy - Comprender el rol de Docker en las pruebas locales
Paso 1 – Instalar SAM CLI
Requisitos previos
AWS CLI
AWS CLI debe estar instalado y configurado (aws configure).
Docker
Necesario para sam local (simula el entorno Lambda).
Python 3.9+
O el runtime de tu elección (Node.js, Java, Go, etc.).
Instalación según tu SO
# Windows (con MSI installer) # Descargar desde: https://github.com/aws/aws-sam-cli/releases/latest # O mediante Chocolatey: choco install aws-sam-cli # macOS (con Homebrew) brew install aws-sam-cli # Linux pip install aws-sam-cli
Verificar la instalación
# Verificar la versión sam --version
Resultado esperado:
SAM CLI, version 1.120.0
Paso 2 – Crear un proyecto con sam init
# Crear un nuevo proyecto SAM sam init
El CLI te guiará a través de las opciones:
Which template source would you like to use? 1 - AWS Quick Start Templates 2 - Custom Template Location Choice: 1 Choose an AWS Quick Start application template 1 - Hello World Example 2 - Data processing 3 - Hello World Example with Powertools ... Template: 1 Use the most popular runtime and package type? (python3.12 and zip) y Would you like to enable X-Ray tracing on the function(s)? y Would you like to enable monitoring using CloudWatch Application Insights? y Would you like to set Structured Logging in JSON format on your Lambda functions? y Project name [sam-app]: mon-api-serverless
Estructura del proyecto generado
mon-api-serverless/
└── README.md
└── __init__.py
└── events/
│ └── event.json # Evento de prueba
└── hello_world/
│ └── __init__.py
│ └── app.py # Código de la función Lambda
│ └── requirements.txt # Dependencias Python
└── template.yaml # Template SAM
└── samconfig.toml # Config de despliegue
└── tests/
└── __init__.py
└── unit/
└── test_handler.py # Pruebas unitariasEste artículo cubre los extractos más útiles — el curso completo Serverless AWS Lambda (12 capítulos, 41 lecciones, ejercicios corregidos y proyecto final) te lleva hasta el final.
./acceder-al-curso-completo curso gratuito: Dominar Claude CodeFAQ
¿Cuánto tiempo se necesita para aprender Serverless AWS Lambda?
¿Se necesitan requisitos previos?
¿Por dónde empezar concretamente?
📬 ¿Quieres recibir este tipo de guía cada semana? Suscríbete gratis — código real, cero palabrería.