Usando AWS Lambda com o CloudFront Lambda @Edge
O Lambda @Edge é uma extensão AWS Lambda que permite implantar funções do Python e do Node.js nos pontos de presença da Amazon. CloudFront Um caso de uso comum do Lambda @Edge é usar funções para personalizar o conteúdo que sua CloudFront distribuição entrega aos usuários finais. Invocar essas solicitações em locais mais próximos do visualizador, em vez de em servidores de origem, reduz significativamente a latência e melhora a experiência do usuário.
Quando você associa uma CloudFront distribuição a uma função Lambda @Edge, CloudFront intercepta solicitações e respostas em CloudFront pontos de presença. CloudFront em seguida, invoca sua função Lambda enviando um evento. Você pode CloudFront invocar sua função Lambda quando os seguintes eventos ocorrerem:
-
Quando CloudFront recebe uma solicitação de um visualizador (solicitação do visualizador)
-
Antes de CloudFront encaminhar uma solicitação para a origem (solicitação de origem)
-
Quando CloudFront recebe uma resposta da origem (resposta de origem)
-
Before CloudFront retorna a resposta ao espectador (resposta do espectador)
![Gráfico conceitual que mostra os CloudFront eventos que podem acionar uma função Lambda.](images/cloudfront-events-that-trigger-lambda-functions.png)
nota
O Lambda@Edge oferece suporte a um conjunto limitado de tempos de execução e recursos. Para obter detalhes, consulte Requisitos e restrições sobre funções Lambda no guia do CloudFront desenvolvedor da Amazon.
Veja a seguir um exemplo de um CloudFront evento.
exemplo CloudFront evento de mensagem
{ "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" } ] } } } } ] }
Para obter mais informações sobre o uso do Lambda @Edge, consulte Usando com o CloudFront Lambda @Edge.