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 Amazon CloudFront, é possível adicionar até quatro acionadores (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 como eventos acionadores do CloudFront para funções do Lambda integram-se ao 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.

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

  • Ao buscar uma página de erro personalizada.

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

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 é 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 antes 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, este não retornará uma resposta ao visualizador nem encaminhará a solicitação à origem enquanto a execução da 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, é conveniente executar a função o mais rapidamente possível.