Uso de AWS Lambda con CloudFront Lambda@Edge
Lambda@Edge permite ejecutar funciones Node.js y Python de Lambda para personalizar el contenido que ofrece CloudFront y ejecutar las funciones en las ubicaciones de AWS más cercanas al lector. Las funciones se ejecutan en respuesta a eventos de CloudFront, sin necesidad de aprovisionar ni administrar servidores. Puede utilizar funciones de Lambda para cambiar las solicitudes y las respuestas de CloudFront en los siguientes puntos:
-
Cuando CloudFront reciba una solicitud de un espectador (solicitud del lector)
-
Antes de que CloudFront reenvíe una solicitud a la fuente (solicitud a la fuente)
-
Después de que CloudFront reciba la respuesta del origen (respuesta del origen)
-
Antes de que CloudFront reenvíe la respuesta al lector (respuesta al lector)

nota
Lambda@Edge admite un conjunto limitado de tiempos de ejecución y características. Para obtener más información, consulte Requisitos y restricciones de funciones de Lambda en la guía de desarrolladores de Amazon CloudFront.
También puede generar respuestas a los espectadores sin necesidad de enviar la solicitud al origen.
ejemplo Evento de mensajes de CloudFront
{ "Records": [ { "cf": { "config": { "distributionId": "EDFDVBD6EXAMPLE" }, "request": { "clientIp": "2001:0db8:85a3:0:0:8a2e:0370:7334", "method": "GET", "uri": "/picture.jpg", "headers": { "host": [ { "key": "Host", "value": "d111111abcdef8.cloudfront.net" } ], "user-agent": [ { "key": "User-Agent", "value": "curl/7.51.0" } ] } } } } ] }
Con Lambda@Edge, puede crear una amplia variedad de soluciones, como:
-
Inspeccionar las cookies para rescribir URL en diferentes versiones de un sitio y poder realizar pruebas A/B.
-
Enviar diferentes objetos a los usuarios en función del encabezado
User-Agent
, que contiene información sobre el dispositivo que envió la solicitud. Por ejemplo, puede enviar imágenes en diferentes resoluciones a los usuarios en función de sus dispositivos. -
Revisar los encabezados o los tokens autorizados, insertar el encabezado correspondiente y permitir el control de acceso antes de reenviar una solicitud al origen.
-
Añadir, eliminar y modificar encabezados, así como reescribir la ruta de la URL para dirigir a los usuarios a distintos objetos de la caché.
-
Generar nuevas respuestas HTTP para realizar tareas como redirigir a los usuarios sin autenticar a páginas de inicio de sesión, o crear y entregar páginas web estáticas desde el borde. Para obtener más información, consulte Uso de funciones de Lambda para generar respuestas HTTP para el lector y solicitudes fuente en la Guía del desarrollador de Amazon CloudFront.
Para obtener más información sobre cómo utilizar Lambda@Edge, consulte Uso de CloudFront con Lambda@Edge.