SST
Descripción general
SST (Serverless Stack) es un framework para construir y desplegar aplicaciones full-stack en AWS con constructos de alto nivel para Lambda, API Gateway, DynamoDB, S3 y frameworks frontend. Ofrece desarrollo local en vivo conectado a servicios reales de AWS, enlazado de recursos con tipado seguro y soporte TypeScript sin configuración.
Instrucciones
- Al definir infraestructura, usa
sst.config.tscon componentes tipados comosst.aws.Function,sst.aws.Api,sst.aws.Bucketysst.aws.Dynamo. - Al conectar recursos, usa la propiedad
linken las funciones para conceder automáticamente permisos IAM e inyectar variables de entorno; accede a los recursos enlazados medianteResource.Nameen los handlers. - Durante el desarrollo local, usa
sst devque ejecuta Lambda localmente con recarga en caliente mientras está conectado a servicios reales de AWS (DynamoDB, S3, SQS), con soporte para depuración con puntos de interrupción en VS Code. - Al desplegar, usa
sst deploy --stage prodpara etapas con nombre,sst deploy --stage pr-${PR_NUMBER}para entornos de vista previa ysst remove --stage devpara eliminar. - Al desplegar frontends, usa los componentes
sst.aws.Nextjs,sst.aws.Remixosst.aws.Astropara SSR en Lambda con activos estáticos en S3 + CloudFront. - Al gestionar secretos, usa
sst secret set KEY valuepara almacenamiento cifrado y específico por etapa. - Al organizar el código, mantén los handlers ligeros en
packages/functions/como orquestadores, y coloca la lógica de negocio enpackages/core/.
Ejemplos
Ejemplo 1: Construir una API serverless con DynamoDB
Solicitud del usuario: "Crear una API REST en AWS con DynamoDB usando SST"
Acciones:
- Define la tabla DynamoDB y API Gateway en
sst.config.ts - Enlaza la tabla a las funciones handler de la API para permisos automáticos
- Implementa handlers CRUD accediendo a
Resource.MyTable.name - Ejecuta
sst devpara desarrollo local en vivo contra servicios reales de AWS
Resultado: Una API REST serverless con acceso a recursos tipado y depuración en vivo.
Ejemplo 2: Desplegar una app Next.js con entornos de vista previa
Solicitud del usuario: "Desplegar mi app Next.js en AWS con entornos de vista previa por PR"
Acciones:
- Configura el componente
sst.aws.Nextjscon dominio personalizado y recursos enlazados - Configura CI para ejecutar
sst deploy --stage pr-${PR_NUMBER}en cada pull request - Enlaza recursos backend (API, base de datos) al despliegue de Next.js
- Agrega un paso de limpieza con
sst removecuando se cierre el PR
Resultado: Un despliegue de Next.js en producción en AWS con entornos de vista previa aislados para cada PR.
Directrices
- Usa
linken lugar de políticas IAM manuales; SST genera permisos de mínimo privilegio automáticamente. - Accede a los recursos enlazados mediante
Resource.Nameen los handlers; nunca codifiques nombres de tabla o ARN de bucket. - Usa
sst devpara el desarrollo diario; es más rápido que desplegar en AWS con cada cambio. - Crea etapas por desarrollador (
sst dev --stage alice) para que cada desarrollador tenga recursos AWS aislados. - Mantén los handlers ligeros: lógica de negocio en
packages/core/, handlers enpackages/functions/. - Usa
sst secretpara claves API y credenciales; están cifradas y son específicas por etapa. - Configura
sst deploy --stage pr-${PR_NUMBER}en CI para entornos de vista previa en cada pull request.