Mejores prácticas de Serverless
Un resumen condensado de las 25 prácticas serverless más importantes para equipos de Node.js en AWS Lambda, extraído de cada página de esta sección.
Busca en todas las páginas de la documentación
Un resumen condensado de las 25 prácticas serverless más importantes para equipos de Node.js en AWS Lambda, extraído de cada página de esta sección.
Duration p99 y la tasa de Errors por alias de funciónManejadores sin estado: Sin estado de sesión en memoria entre invocaciones - Conceptos básicos de Serverless.
Externalizar el estado: DynamoDB, RDS, ElastiCache, S3, no variables globales para datos de usuario.
Reutilización de clientes en fase de inicialización: Clientes de DynamoDB/S3/SSM en el ámbito del módulo - @aws-sdk v3.
Analiza el entorno con Zod en la inicialización: Falla rápidamente en caso de configuración incorrecta antes de recibir tráfico.
Solo manejadores asíncronos: No hay manejadores de estilo callback en el nuevo código TypeScript - Patrones de manejadores de Lambda.
callbackWaitsForEmptyEventLoop = false: Cuando se usan pools de DB o agentes HTTP keep-alive.
Devuelve 4xx, no lances excepciones: Los errores de validación no deben reintentar invocaciones asíncronas.
Consumidores SQS idempotentes: Deduplica con escrituras condicionales de DynamoDB en messageId o clave de negocio.
Fallos parciales de lotes SQS: Reporta batchItemFailures solo para mensajes venenosos.
Usa importaciones modulares de SDK v3: Nunca agregues aws-sdk v2 a proyectos nuevos.
Código de aplicación de paquete esbuild: Minifica + tree shake - Mitigación de arranque en frío.
Tamaño del zip objetivo inferior a 5-15 MB: Investiga la hinchazón con un visualizador.
Tiempo de ejecución nodejs24.x: Coincide con Node 24 LTS local.
Prefiere arm64 (Graviton): Compara las dependencias nativas en la matriz de CI.
Tamaño de memoria adecuado: Más memoria otorga más CPU; acelera la inicialización y la ejecución.
Tiempo de espera desde p99 + margen: Incluye llamadas descendentes; evita interrupciones bruscas a mitad de la escritura.
VPC solo cuando sea necesario: Acepta el costo de arranque en frío de ENI o usa RDS Proxy / Data API.
Concurrencia aprovisionada en alias: No en $LATEST; control de costos con políticas de autoescalado.
Registros JSON estructurados: Incluye awsRequestId e IDs de correlación de negocio.
No PII en los registros: Redacta los cuerpos; registra solo los IDs.
Secretos de SSM/Secrets Manager: Almacenados en caché en la inicialización; nunca en el entorno en capturas de pantalla de la consola.
Adaptadores de framework solo para migración: Planifica manejadores ligeros para rutas calientes - serverless-express / aws-lambda-fastify.
IaC para cada función: SAM, CDK o Terraform - sin desviaciones por click-ops.
Funciones separadas por tipo de disparador: HTTP vs SQS vs programación - no multiplexes eventos no relacionados.
Revisa Lambda vs ECS trimestralmente: El tráfico constante puede ser más barato en Fargate - Conceptos básicos de despliegue de plataforma.
Reutiliza los clientes de AWS SDK y la configuración analizada en el ámbito del módulo (fase de inicialización). Reduce la sobrecarga por invocación en cada llamada en caliente.
Cuando la latencia p99, WebSockets, el tiempo de ejecución superior a 15 minutos o el costo base exceden los contenedores siempre activos a tu nivel de tráfico.
Muchas funciones pequeñas cuando los paquetes, los tiempos de espera o los permisos de IAM difieren. Una función con enrutador interno solo para APIs pequeñas y prototipos.
Prueba unitaria de manejadores con eventos de prueba. Prueba de integración con SAM local o despliega en una pila de desarrollo. No confíes solo en el botón de prueba de la consola.
No. Las mismas puertas de calidad y promoción de artefactos que los contenedores - Mejores prácticas de CI/CD.
Versiones de pila: Esta página fue escrita para Node.js 24.18.0 (LTS activo), npm 10+, TypeScript 5.6+, Express 5, Fastify 5 y NestJS 11.
Revisado por Chris St. John·Última actualización: 19 jul 2026