Como decidir qual evento do CloudFront usar para acionar uma função do Lambda@Edge - Amazon CloudFront

Como decidir qual evento do CloudFront usar para acionar uma função do Lambda@Edge

Ao decidir qual evento do CloudFront você deseja usar para acionar uma função do Lambda, considere:

Você deseja que o CloudFront armazene em cache objetos que são alterados por uma função do Lambda?

Para que o CloudFront armazene em cache um objeto modificado por uma função do Lambda para que o CloudFront possa fornecer o objeto no ponto de presença na próxima vez que ele for solicitado, use o evento de solicitação da origem ou de resposta da origem. Isso reduz a carga na origem, a latência de solicitações subsequentes e o custo de chamar o Lambda@Edge em solicitações subsequentes.

Por exemplo, para adicionar, remover ou alterar os cabeçalhos dos objetos retornados pela origem e quiser que o CloudFront armazene o resultado em cache, use o evento de resposta da origem.

Você deseja que a função seja executada em todas as solicitações?

Para que a função seja executada para todas as solicitações que o CloudFront recebe para distribuição, use os eventos de solicitação ou de resposta do visualizador. Os eventos de solicitação e de resposta da origem ocorrem somente quando um objeto solicitado não é armazenado em cache em um ponto de presença, e o CloudFront encaminha uma solicitação para a origem.

A função altera a chave de cache?

Se você quiser que a função altere um valor que está sendo usado como base para o armazenamento em cache, use o evento de solicitação do visualizador. Por exemplo, se uma função altera o URL para incluir a abreviação de um idioma no caminho (por exemplo, porque o usuário escolheu o idioma em uma lista suspensa), use o evento de solicitação do visualizador:

  • URL na solicitação do visualizador: https://example.com/en/index.html

  • URL quando a solicitação é proveniente de um endereço IP na Alemanha: https://example.com/de/index.html

O evento de solicitação do visualizador também pode ser usada se você estiver armazenando em cache com base em cookies ou cabeçalhos de solicitação.

nota

Se a função alterar cookies ou cabeçalhos, configure o CloudFront para encaminhar a parte aplicável da solicitação à origem. Para obter mais informações, consulte os tópicos a seguir:

A função afeta a resposta da origem?

Se você quiser que a função altere a solicitação para afetar a resposta da origem, use o evento de solicitação para origem. Normalmente, a maioria dos eventos de solicitação do visualizador não são encaminhados para a origem. O CloudFront responde a uma solicitação com um objeto que já está no cache de borda. Se a função alterar a solicitação com base em um evento de solicitação de origem, o CloudFront armazenará em cache a resposta à solicitação de origem alterada.