Eventos do CloudFront que podem acionar uma função do Lambda@Edge - Amazon CloudFront

Eventos do CloudFront que podem acionar uma função do Lambda@Edge

Para cada comportamento do cache em uma distribuição do CloudFront, é possível adicionar até quatro triggers (associações) que fazem com que uma função do Lambda seja executada quando ocorrem eventos específicos do CloudFront. Os triggers de CloudFront podem ser baseados em um dos quatro eventos do CloudFront, conforme mostrado no diagrama a seguir.


					Gráfico conceitual que mostra eventos de trigger de CloudFront para Lambda que se integram com o CloudFront.

Os eventos do CloudFront que podem ser usados para acionar as funções do Lambda@Edge são os seguintes:

Solicitação do visualizador

A função é executada quando o CloudFront recebe uma solicitação de um visualizador antes de ele verificar se o objeto solicitado está no cache do CloudFront.

Solicitação da origem

A função é executada apenas quando o CloudFront encaminha uma solicitação para a origem. Quando o objeto solicitado está no cache do CloudFront, a função não é executada.

Resposta da origem

A função é executada depois que o CloudFront recebe uma resposta da origem e antes de ele armazenar o objeto em cache na resposta. Observe que a função é executada mesmo se um erro for retornado da origem.

A função não é executada nos seguintes casos:

  • Quando o arquivo solicitado está no cache do CloudFront e não expirou.

  • Quando a resposta é gerada de uma função acionada por um evento de solicitação de origem.

Resposta do visualizador

A função é executada antes de retornar o arquivo solicitado para o visualizador. Observe que a função é executada independentemente de o arquivo já estar no cache do CloudFront.

A função não é executada nos seguintes casos:

  • Quando a origem retorna um código de status HTTP 400 ou posterior.

  • Quando uma página de erro personalizada é retornada.

  • Quando a resposta é gerada de uma função acionada por um evento de solicitação do visualizador.

  • Quando o CloudFront redireciona automaticamente uma solicitação HTTP para HTTPS (quando o valor de Política de protocolo do visualizador é Redirect HTTP to HTTPS (Redirecionar HTTP para HTTPS)).

Ao adicionar vários triggers para o mesmo comportamento do cache, você pode usá-los para executar a mesma função ou executar funções diferentes para cada trigger. Você também pode associar a mesma função para mais de uma distribuição.

nota

Quando um evento do CloudFront aciona a execução de uma função do Lambda, a função deve ser concluída para que o CloudFront possa continuar. Por exemplo, se uma função do Lambda for acionada por um evento de solicitação do visualizador do CloudFront, o CloudFront não retornará uma resposta ao visualizador nem encaminhará a solicitação para a origem enquanto a função do Lambda não for concluída. Isso significa que cada solicitação que aciona uma função do Lambda aumenta a latência da solicitação, portanto, convém que a função seja executada o mais rapidamente possível.