Saltar a contenido

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

  1. Crea una instancia Express.
  2. Monta NestJS usando ExpressAdapter.
  3. Registra ValidationPipe global con whitelist, forbidNonWhitelisted y transform.
  4. Inicializa AppModule.
  5. Retorna el handler configurado por configure({ app: expressApp }).
  6. 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, propaga x-user-username como 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.