LambdaForge
Despliega proyectos AWS Lambda listos para producción en 60 segundos — con specs generadas por IA, ARM64 por defecto, y mejores prácticas Well-Architected integradas.
LambdaForge es una herramienta CLI que genera un proyecto completo de AWS Lambda con un solo comando, genera Kiro specs automáticamente usando Amazon Bedrock, y despliega mediante AWS CDK. Elimina las 2-3 horas de código repetitivo que todo desarrollador serverless repite en cada nuevo proyecto.
¿Por qué LambdaForge?
Cada vez que inicias un nuevo proyecto Lambda debes:
- ✍️ Configurar
pyproject.toml,requirements.txt,.gitignore - 🏗️ Escribir el handler, logger, tracer, métricas
- 📐 Configurar DynamoDB, IAM, API Gateway en CDK
- 🧪 Conectar pytest + moto para pruebas
- 🚀 Construir un pipeline CI/CD con GitHub Actions
- 📝 Escribir specs en
.kiro/specs/
LambdaForge hace todo esto en 60 segundos, y usa Amazon Bedrock (Claude Sonnet 4.5) para auto-generar tus .kiro/specs/ basándose en lo que tu proyecto debe hacer.
Arquitectura
┌─────────────────┐
│ Desarrollador │
│ $ lambdaforge │
│ new │
└────────┬────────┘
│
▼
┌─────────────────┐ ┌──────────────────┐
│ CLI (Click) │─────▶│ Amazon Bedrock │
│ - new │ │ Claude Sonnet 4.5│
│ - upgrade │ └─────────┬────────┘
│ - templates │ │
│ - deploy │ ▼
└────────┬────────┘ ┌──────────────────┐
│ │ Kiro Specs (.md) │
│ └──────────────────┘
▼
┌─────────────────┐
│ Cookiecutter │ (5 plantillas: api, cron, queue, stream, s3)
│ + CDK + Tests │
└────────┬────────┘
│
▼
┌─────────────────┐
│ Proyecto listo │ -> git init -> git push -> cdk deploy
└─────────────────┘
Características
- 🏗️ 5 Plantillas Listas para Producción: REST API, Cron Programado, Cola SQS, Stream Kinesis, Evento S3
- 🤖 Specs Generadas por IA: Kiro specs auto-generadas por Amazon Bedrock (Claude Sonnet 4.5)
- 🏎️ ARM64 por Defecto: 20% más barato, 19% más rápido que Lambda x86_64
- 🔒 Tags Well-Architected: Todos los recursos etiquetados con
Project,Environment,CostCenter,ManagedBy - 📊 Observabilidad Integrada: aws-lambda-powertools (logger, tracer, metrics) preconfigurado
- 🧪 Pruebas con moto: Mocking de AWS para CI local sin llamadas reales a AWS
- 🚀 CI/CD con OIDC: Workflow de GitHub Actions usando OIDC (sin claves AWS de larga duración)
- 💰 Optimizado para Free Tier: Diseñado para caber en el AWS Free Tier
- 🌐 Roadmap Multi-Lenguaje: Python (ahora), TypeScript, Go, Rust (próximamente)
Inicio Rápido
Instalación
# Desde PyPI (planificado)
pip install lambdaforge
# Desde código fuente
git clone https://github.com/lambdaforge/lambdaforge
cd lambdaforge
pip install -e ".[dev]"
Crear un nuevo proyecto Lambda
lambdaforge new
# Prompts interactivos:
# ? Project name: my-awesome-api
# ? Template: python-api
# ? Description: REST API for user management
# ? Author: Ada Lovelace
# ? Email: ada@example.com
# ? AWS region: us-east-1
# Genera el proyecto completo + Kiro specs en 60 segundos:
# ✓ Rendering template
# ✓ Generating Kiro specs via Bedrock
# ✓ Initializing git
# ✓ Project ready at ./my-awesome-api
cd my-awesome-api
ls -la
# .kiro/
# specs/
# 00-overview.md (generado por IA)
# 01-architecture.md (generado por IA)
# 02-acceptance-criteria.md (generado por IA)
# 03-implementation-plan.md (generado por IA)
# src/
# handler.py
# utils/logger.py
# tests/
# conftest.py
# test_handler.py
# infrastructure/
# app.js
# cdk.json
# lib/my-awesome-api-stack.js
# .github/workflows/
# deploy.yml
# Dockerfile
# pyproject.toml
# README.md
Desplegar en AWS
cd my-awesome-api
npx cdk bootstrap # solo la primera vez
npx cdk deploy
# o mediante LambdaForge (incluye empaquetado de dependencias + barra de progreso)
lambdaforge deploy
lambdaforge deploy --env staging
lambdaforge deploy --env prod
Actualizar un proyecto existente
¿Ya tienes una Lambda pero quieres aplicar las mejores prácticas de LambdaForge?
cd my-existing-lambda
lambdaforge upgrade
# Detecta: Python 3.11, sin observabilidad, sin pruebas
# Añade: aws-lambda-powertools, pytest+moto, CI/CD
# Actualiza: Python 3.12, ARM64, tags Well-Architected
# Preserva: Tu lógica de negocio
Plantillas
| Plantilla | Trigger | Caso de Uso | Estado |
|---|---|---|---|
python-api |
API Gateway | APIs REST/HTTP | ✅ Estable |
python-cron |
EventBridge Schedule | Tareas programadas | ✅ Estable |
python-queue |
SQS | Workers asíncronos | ✅ Estable |
python-stream |
Kinesis | Analítica en tiempo real | ✅ Estable |
python-s3 |
S3 Events | Procesamiento de archivos | ✅ Estable |
typescript-api |
API Gateway | Lambdas Node.js | 🔜 Roadmap |
go-stream |
Kinesis | Alto rendimiento | 🔜 Roadmap |
Estructura del Proyecto
lambdaforge/
├── src/lambdaforge/
│ ├── __init__.py # Versión, metadatos
│ ├── cli.py # CLI basada en Click (modo interactivo + directo)
│ ├── templates.py # 5 definiciones de plantillas
│ ├── renderer.py # Wrapper de Cookiecutter
│ ├── bedrock_client.py # Wrapper de la API de Amazon Bedrock
│ ├── spec_generator.py # Generador de Kiro specs con IA
│ ├── upgrade.py # Modo actualización para Lambdas existentes
│ ├── status.py # Estado del proyecto y recursos
│ ├── logs.py # Visor de logs de CloudWatch
│ └── deploy.py # Wrapper de despliegue CDK (bootstrap/destroy)
├── templates/
│ ├── python-api/ # Plantilla REST API (Cookiecutter)
│ ├── python-cron/ # Plantilla tareas programadas
│ ├── python-queue/ # Plantilla cola SQS
│ ├── python-stream/ # Plantilla stream Kinesis
│ └── python-s3/ # Plantilla eventos S3
│ └── {{cookiecutter.project_slug}}/
│ ├── src/ # Código Lambda + powertools
│ ├── tests/ # pytest + moto
│ ├── infrastructure/ # CDK JavaScript
│ ├── .github/workflows/ # CI/CD + Dependabot
│ └── ...
├── infrastructure/ # CDK para la propia API de LambdaForge
│ ├── app.py
│ ├── cdk.json
│ └── lib/lambdaforge_stack.py
├── tests/ # Pruebas unitarias de LambdaForge
│ ├── conftest.py
│ ├── test_cli.py
│ ├── test_templates.py
│ ├── test_renderer.py
│ ├── test_bedrock_client.py
│ └── test_spec_generator.py
├── .kiro/
│ ├── specs/ # Specs propias de LambdaForge
│ │ ├── 00-overview.md
│ │ ├── 01-architecture.md
│ │ ├── 02-acceptance-criteria.md
│ │ └── 03-implementation-plan.md
│ └── steering/ # Estándares de desarrollo
│ ├── code-standards.md
│ ├── testing.md
│ ├── security.md
│ ├── templates.md
│ └── aws-best-practices.md
├── .github/workflows/ # CI/CD para LambdaForge
│ ├── ci.yml
│ └── release.yml
├── pyproject.toml
├── LICENSE # Apache-2.0
├── CONTRIBUTING.md
├── CHANGELOG.md
└── README.md
Cómo Funciona
1. Selección de Plantilla
LambdaForge incluye plantillas Cookiecutter preconfiguradas para cada patrón Lambda. Las plantillas se almacenan en templates/ y se renderizan con los valores específicos del proyecto.
2. Kiro Specs Generadas por IA
Después de renderizar la plantilla, LambdaForge llama a Amazon Bedrock con el nombre del proyecto, descripción y plantilla elegida. Bedrock (usando Claude Sonnet 4.5) genera 4 archivos de specs en el formato de Kiro:
00-overview.md: Descripción general del proyecto01-architecture.md: Arquitectura del sistema con servicios AWS02-acceptance-criteria.md: Criterios de aceptación verificables03-implementation-plan.md: Plan de implementación por fases
3. Mejores Prácticas Integradas
Cada proyecto generado incluye:
- aws-lambda-powertools: logging estructurado, trazas X-Ray, métricas CloudWatch
- Pydantic: validación de entrada
- Arquitectura ARM64: 20% de reducción de costos vs x86_64
- Tags Well-Architected: Project, Environment, CostCenter, ManagedBy
- CloudWatch Dashboard: Dashboard preconfigurado para cada stack
- OIDC para CI/CD: Sin claves AWS de larga duración en GitHub
4. Despliegue con un Solo Comando
lambdaforge deploy ejecuta npx cdk deploy con manejo de errores adecuado, reporte de progreso y rollback en caso de fallo.
Estimación de Costos
LambdaForge en sí tiene costos mínimos:
| Recurso | Costo |
|---|---|
| Amazon Bedrock (Claude Sonnet 4.5) | ~$0.003 por generación de specs |
| Lambda (comando upgrade) | <$0.0001 por invocación |
| Total por nuevo proyecto | ~$0.003 |
Los proyectos que LambdaForge genera están diseñados para caber en el AWS Free Tier.
Seguridad
- ✅ Sin claves AWS de larga duración: Usa OIDC para CI/CD
- ✅ IAM de mínimo privilegio: Cada Lambda obtiene un rol limitado
- ✅ Validación con Pydantic: Todas las entradas validadas
- ✅ Logging estructurado con Powertools: Sin PII en los logs
- ✅ Secretos via AWS Secrets Manager: Nunca en variables de entorno
Pruebas
# Pruebas unitarias + integración (usa moto - sin llamadas reales a AWS)
pytest
# Con cobertura
pytest --cov=src --cov-report=html
# Verificación de tipos
mypy src/
# Linting
ruff check .
Roadmap
- Publicar en PyPI
- Plantilla
typescript-api - Plantilla
go-stream - UI web interactiva para usuarios sin CLI
- Detección de desviación de specs (regenerar cuando el código cambia)
- Despliegue multi-región
- Estimación de costos antes del despliegue
Contribuir
¡Las contribuciones son bienvenidas! Consulta CONTRIBUTING.md para las guías de contribución.
Licencia
Apache-2.0 © 2026 LambdaForge Contributors
Construido con Kiro
Este proyecto fue construido usando Kiro — el IDE potenciado por IA que convierte specs en código desplegable. Todos los archivos .kiro/specs/ de LambdaForge y de cada proyecto que genera están escritos en el formato estructurado de Kiro.
Agradecimientos
- Equipo de Kiro por el flujo de desarrollo dirigido por specs
- Equipo de AWS Lambda por la plataforma serverless
- Anthropic por Claude (via Amazon Bedrock)
- Jeff Barr, Darko Mesaroš, Ana Cunha — los jueces de HACKATHONKIRO cuya experiencia en serverless y experiencia de desarrollador inspiraron esta herramienta
Metadata
Release files for lambda-forge-cli-aws 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| lambda_forge_cli_aws-1.0.0.tar.gz | 77.2 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| lambda_forge_cli_aws-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 151.5 kB
Release files / lambda_forge_cli_aws-1.0.0.tar.gz
| Download URL | lambda_forge_cli_aws-1.0.0.tar.gz |
|---|---|
| Size | 77.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3ab17fa8e8f99a5615f9df9e8f365ca23d1501829ce5f310dc47e4870f6dde8e
|
|
BLAKE2b-256 checksum How to use checksums |
1df902bcc0572e84f7469936348afe0b003ca1f81255ffd86b1e780b07001565
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.13
|
Release files / lambda_forge_cli_aws-1.0.0-py3-none-any.whl
| Download URL | lambda_forge_cli_aws-1.0.0-py3-none-any.whl |
|---|---|
| Size | 74.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fa4af3c3b1b03d10964f1304bea2099cd3e4db7117085863ace3319223f0b066
|
|
BLAKE2b-256 checksum How to use checksums |
d8f2aaebccba05e148fcb94c5047656fe8f99265fc5aef46b332de1fdfdb9bf2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.13
|
Security for lambda-forge-cli-aws 1.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.