Despliegue Lambda
El proyecto incluye src/lambda.ts como entrada serverless. Usa @vendia/serverless-express para adaptar la aplicación NestJS a eventos AWS Lambda/API Gateway.
Flujo De Inicialización
- Crea una instancia Express.
- Monta NestJS usando
ExpressAdapter. - Registra
ValidationPipeglobal conwhitelist,forbidNonWhitelistedytransform. - Inicializa
AppModule. - Retorna el handler configurado por
configure({ app: expressApp }). - Cachea el servidor para reutilizarlo entre invocaciones calientes.
Handler
El handler:
- Registra el evento entrante en logs.
- Lee claims del authorizer cuando existen.
- Si existe
claims.username, propagax-user-usernamecomo multi-value header. - Ejecuta el servidor cacheado.
- Agrega headers CORS a la respuesta.
- Registra la respuesta final en logs.
Headers CORS agregados:
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: Content-Type, Authorization
Access-Control-Allow-Methods: GET,POST,PUT,PATCH,DELETE,OPTIONS
Consideraciones
- La Lambda depende de las mismas variables de entorno que la aplicación NestJS.
- No se documentan valores reales de conexión ni secretos de ambiente.
- La autenticación/autorización no está implementada en el controlador; el handler sólo propaga información del authorizer cuando API Gateway la entrega.