AWS anunció AWS Lambda Web Functions, una nueva modalidad dentro de Lambda que permite ejecutar directamente aplicaciones web y servidores HTTP estándar, sin reescribir el código para adaptarlo al modelo tradicional de manejadores de eventos. Es posible desplegar aplicaciones creadas con Express, Hono, Fastify o Next.js, o con cualquier framework de Node.js, mediante un solo comando y sin adaptadores especiales ni gestión adicional de la infraestructura.
El servicio está dirigido a aplicaciones web, interfaces de programación, renderizado del lado del servidor y cargas HTTP interactivas que gestionan solicitudes concurrentes y procesamiento intensivo de entrada y salida.
Un modelo de ejecución diferente dentro de Lambda
AWS ofrece ahora tres modelos de ejecución diferenciados dentro de Lambda, todos basados en la tecnología de aislamiento Firecracker. Event Functions sigue siendo adecuado para el procesamiento de eventos, el consumo de mensajes y las invocaciones generadas por servicios de AWS, ya que el manejador recibe un único evento y devuelve una respuesta conforme al modelo tradicional.
Web Functions utiliza un modelo nativo para HTTP, en el que la aplicación escucha en un puerto y gestiona solicitudes estándar. Un único entorno de ejecución puede procesar hasta 128 solicitudes simultáneas. El tercer modelo, Lambda MicroVMs, ofrece entornos aislados, estado persistente y un ciclo de vida gestionado por el cliente para ejecutar código no confiable o generado por el usuario.
¿Qué cambia en la práctica para los desarrolladores?
AWS afirma que Web Functions reduce la necesidad de ensamblar varios componentes para distribuir globalmente una aplicación web. El servicio se encarga del escalado, la replicación entre regiones y el enrutamiento basado en la latencia, mientras que el código sigue siendo más parecido a un servidor HTTP ejecutado localmente por el desarrollador.
El cálculo del precio de Web Functions se basa en el tiempo de uso del procesador, mientras que la memoria se factura durante toda la existencia del entorno de ejecución. Como resultado, el tiempo que la aplicación pasa esperando una consulta a una base de datos o una llamada a una interfaz de programación consume una pequeña cantidad de tiempo de procesador, un modelo que puede resultar adecuado para cargas que dependen en gran medida de la entrada y salida, como el renderizado del lado del servidor, las interfaces de programación y los puntos finales de inferencia de inteligencia artificial que transmiten tokens.
Esto no significa que el coste vaya a ser automáticamente menor para todas las aplicaciones; el resultado depende del patrón de uso, el tiempo de permanencia de los entornos, el consumo de memoria y el volumen de solicitudes.
Despliegue, distribución y versiones
AWS CLI utiliza un comando como aws lambda-web deploy para empaquetar el código, crear una Web Function, desplegar la primera revisión y asociar un punto de conexión HTTPS. La aplicación puede desplegarse en varias regiones, como us-east-1, eu-west-1 y ap-northeast-1, para que Lambda dirija las solicitudes mediante una única dirección global hacia la región con menor latencia de respuesta, según el mejor esfuerzo.
El servicio trata cada versión como una instantánea inmutable del código. También permite que los puntos de conexión distribuyan el tráfico entre versiones, incluido un despliegue gradual de tipo canary que dirija, por ejemplo, el 90% de las solicitudes a la versión actual y el 10% a la nueva.
Integración con CloudFront y disponibilidad inicial
Es posible utilizar un punto de conexión de Web Function como origen de Amazon CloudFront, de modo que los recursos estáticos se almacenen en la red mientras las solicitudes dinámicas se envían a la función web. AWS también admite asociar el control de acceso al origen de CloudFront con el punto de conexión, para permitir que solo el dominio especificado lo invoque y evitar exponer el punto de conexión o añadir un mecanismo de autorización personalizado dentro de la aplicación.
El servicio está disponible en el lanzamiento en US East (N. Virginia), US East (Ohio), US West (Oregon), Asia Pacific (Tokyo) y Europe (Ireland). Inicialmente funciona con Node.js 24 (nodejs24.x) en Arm64, con compatibilidad para conectarse a Amazon VPC y acceder a recursos ubicados dentro de redes virtuales privadas.