Diferencias entre CloudFront Functions y Lambda@Edge
CloudFront Functions y Lambda@Edge proporcionan una forma de ejecutar código en respuesta a eventos de CloudFront.
CloudFront Functions es ideal para funciones ligeras y de corta duración para los siguientes casos de uso:
-
Normalización de la clave de caché: transforme los atributos de la solicitud HTTP (encabezados, cadenas de consulta, cookies o hasta la ruta de la URL) para crear una clave de caché óptima, lo que puede mejorar la tasa de aciertos de la caché.
-
Manipulación de encabezados: inserte, modifique o elimine encabezados HTTP en la solicitud o la respuesta. Por ejemplo, puede agregar un encabezado
True-Client-IP
a cada solicitud. -
Redireccionamientos o reescrituras de URL: redirija a los lectores a otras páginas en función de la información de la solicitud o puede redirigir todas las solicitudes de una ruta a otra.
-
Autorización de solicitudes: valide los tokens de autorización con hash, como los tokens web JSON (JWT) mediante la inspección de los encabezados de autorización u otros metadatos de solicitud.
Para empezar a utilizar CloudFront Functions, consulte Personalización en la periferia con CloudFront Functions.
Lambda@Edge es ideal para los siguientes casos de uso:
-
Funciones que tardan varios milisegundos o más en completarse
-
Funciones que requieren CPU o memoria ajustable
-
Funciones que dependen de bibliotecas de terceros (incluido el SDK de AWS, para la integración con otros Servicios de AWS)
-
Funciones que requieren acceso a la red para utilizar servicios externos para el procesamiento
-
Funciones que requieren acceso al sistema de archivos o acceso al cuerpo de las solicitudes HTTP
Para comenzar con Lambda@Edge, consulte Personalización en la periferia con Lambda@Edge.
Para ayudarle a elegir la opción para su caso de uso, utilice la siguiente tabla con el fin de entender las diferencias entre CloudFront Functions y Lambda@Edge.
CloudFront Functions | Lambda@Edge | |
---|---|---|
Lenguajes de programación | JavaScript (compatible con ECMAScript 5.1) | Node.js y Python |
Orígenes de eventos |
|
|
Sí CloudFront KeyValueStore solo admite JavaScript runtime 2.0 |
No |
|
Escalado | Hasta millones de solicitudes por segundo | Hasta 10 000 solicitudes por segundo por región |
Duración de función | Submilisegundo |
Hasta 5 segundos (solicitud del lector y respuesta del lector) Hasta 30 segundos (solicitud de origen y respuesta de origen) |
Tamaño de memoria de función máxima |
2 MB |
128 MB (solicitud del lector y respuesta del lector) 10 240 MB (10 GB) (solicitud de origen y respuesta de origen) Para obtener más información, consulte Cuotas de Lambda@Edge. |
Tamaño máximo del código de función y bibliotecas incluidas | 10 KB |
50 MB (solicitud del espectador y respuesta del espectador) 50 MB (solicitud de origen y respuesta de origen) |
Acceso a la red | No | Sí |
Acceso al sistema de archivos | No | Sí |
Acceso al cuerpo de solicitud | No | Sí |
Acceso a datos de geolocalización y dispositivos | Sí |
No (solicitud del lector y respuesta del lector) Sí (solicitud de origen y respuesta de origen) |
Se puede compilar y probar completamente dentro de CloudFront | Sí | No |
Registro y métricas de funciones | Sí | Sí |
Precios | Capa gratuita disponible; se cobra por solicitud | Sin capa gratuita; se cobra por solicitud y duración de la función |