

# Diferencias entre CloudFront Functions y Lambda@Edge
<a name="edge-functions-choosing"></a>

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é](understanding-the-cache-key.md) ó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](cloudfront-functions.md).

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](lambda-at-the-edge.md).

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. Para obtener información sobre las diferencias que se aplican a los métodos auxiliares para la modificación del origen, consulte [Elección entre CloudFront Functions y Lambda@Edge](helper-functions-origin-modification.md#origin-modification-considerations).


|  | CloudFront Functions | Lambda@Edge | 
| --- | --- | --- | 
| Lenguajes de programación | JavaScript (compatible con ECMAScript 5.1) | Node.js y Python | 
| Orígenes de eventos |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonCloudFront/latest/DeveloperGuide/edge-functions-choosing.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonCloudFront/latest/DeveloperGuide/edge-functions-choosing.html)  | 
|  Admite [Amazon CloudFront KeyValueStore](kvs-with-functions.md)  |  Sí CloudFront KeyValueStore solo admite [JavaScript runtime 2.0](functions-javascript-runtime-20.md)  |  No  | 
| Escalado | Hasta millones de solicitudes por segundo | Hasta 10 000 solicitudes por segundo por región | 
| Duración de función | Submilisegundo |  Hasta 30 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](cloudfront-limits.md#limits-lambda-at-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í | 