Eventos de CloudFront que pueden desencadenar una función de Lambda@Edge - Amazon CloudFront

Eventos de CloudFront que pueden desencadenar una función de Lambda@Edge

Para cada comportamiento de la caché de una distribución de Amazon CloudFront, puede agregar hasta cuatro desencadenadores (asociaciones) que harán que se ejecute una función de Lambda cuando se produzcan determinados eventos de CloudFront. Los desencadenadores de CloudFront pueden basarse en uno de los cuatro eventos de CloudFront que se muestran en el siguiente diagrama.

Gráfico conceptual que muestra cómo se integran con CloudFront los eventos desencadenadores de CloudFront para las funciones de Lambda.

El eventos de CloudFront que pueden utilizarse para activar funciones de Lambda@Edge son los siguientes:

Solicitud del lector

La función se ejecuta cuando CloudFront recibe una solicitud de un lector y antes de comprobar si el objeto solicitado está en la caché de CloudFront.

Solicitud del origen

La función se ejecuta solo cuando CloudFront reenvía una solicitud a su origen. Cuando el objeto solicitado está en la caché de CloudFront, la función no se ejecuta.

Respuesta del origen

La función se ejecuta después de que CloudFront recibe una respuesta del origen y antes de almacenar el objeto en caché en la respuesta. Tenga en cuenta que la función se ejecuta aunque el origen devuelva un error.

La función no se ejecuta en los casos siguientes:

  • Cuando el archivo solicitado está en la caché de CloudFront y no ha caducado.

  • Cuando la respuesta se genera a partir de una función activada por un evento de solicitud al origen.

Respuesta del lector

La función se ejecuta antes de devolver el archivo solicitado al espectador. Tenga en cuenta que la función se ejecuta independientemente de si el archivo ya está en la caché de CloudFront.

La función no se ejecuta en los casos siguientes:

  • Cuando el origen devuelve un código de estado HTTP 400 o superior.

  • Cuando se devuelve una página de error personalizada.

  • Cuando la respuesta se genera a partir de una función activada por un evento de solicitud del espectador.

  • Cuando CloudFront redirige automáticamente una solicitud HTTP a HTTPS (cuando el valor de Política de protocolo para lectores es Redirect HTTP to HTTPS (Redirigir HTTP a HTTPS)).

Si añade varios disparadores al mismo comportamiento de la caché, puede utilizarlos para ejecutar la misma función o distintas funciones para cada disparador. También puede asociar la misma función a más de una distribución.

nota

Cuando un evento de CloudFront desencadena la ejecución de una función de Lambda, la función debe finalizar antes de que CloudFront pueda continuar. Por ejemplo, si una función Lambda se activa por medio de un evento de solicitud del espectador de CloudFront, CloudFront no devolverá una respuesta al lector ni reenviará la solicitud al origen hasta que la función Lambda termine de ejecutarse. Esto significa que cada solicitud que desencadena una función Lambda aumenta la latencia de la solicitud, por lo que es conveniente que la función se ejecute con la mayor rapidez posible.