Usando AWS Lambda com o CloudFront Lambda @Edge - AWS Lambda

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.
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.