Diferenças entre o CloudFront Functions e o Lambda@Edge - Amazon CloudFront

Diferenças entre o CloudFront Functions e o Lambda@Edge

O CloudFront Functions e o Lambda@Edge fornecem uma maneira de executar código em resposta aos eventos do CloudFront.

O CloudFront Functions é ideal para funções leves e curtas para os seguintes casos de uso:

  • Normalização da chave de cache: transforme atributos de solicitação HTTP (cabeçalhos, strings de consulta, cookies e até mesmo o caminho do URL) para criar uma chave de cache ideal, que pode melhorar a taxa de acertos do cache.

  • Manipulação de cabeçalhos: insira, modifique ou exclua cabeçalhos HTTP na solicitação ou na resposta. Por exemplo, você pode adicionar um cabeçalho True-Client-IP a cada solicitação.

  • Redirecionamento ou regravações de URL: redirecione os visualizadores para outras páginas com base nas informações da solicitação ou reescreva todas as solicitações de um caminho para outro.

  • Solicitar autorização: valide tokens de autorização com hash, como tokens Web JSON (JWT), por meio da inspeção dos cabeçalhos de autorização ou outros metadados de solicitação.

Para começar a usar o CloudFront Functions, consulte Personalizar na borda com o CloudFront Functions.

O Lambda@Edge é ideal para os seguintes casos de uso:

  • Funções que levam alguns milissegundos ou mais para serem concluídas.

  • Funções que exigem CPU ou memória ajustável.

  • Funções que dependem de bibliotecas de terceiros (incluindo o SDK da AWS para integração com outros Serviços da AWS).

  • Funções que exigem acesso à rede para usar serviços externos para processamento.

  • Funções que exigem acesso ao sistema de arquivos ou acesso ao corpo de solicitações HTTP.

Para começar a usar o Lambda@Edge, consulte Personalização na borda com o Lambda@Edge.

Para ajudar você a escolher a opção para o caso de uso, use a tabela a seguir para entender as diferenças entre o CloudFront Functions e o Lambda@Edge.

CloudFront Functions Lambda@Edge
Linguagens de programação JavaScript (compatível com ECMAScript 5.1) Node.js e Python
Origens de eventos
  • Solicitação do visualizador

  • Resposta do visualizador

  • Solicitação do visualizador

  • Resposta do visualizador

  • Solicitação da origem

  • Resposta da origem

Suporte a KeyValueStore do Amazon CloudFront

Sim

O KeyValueStore do CloudFront é compatível somente com o runtime 2.0 do JavaScript

Não

Dimensionar 10.000.000 de solicitações por segundo ou mais Até 10.000 solicitações por segundo por região
Duração da função Submilissegundo

Até 5 segundos (solicitação do visualizador e resposta do visualizador)

Até 30 segundos (solicitação da origem e resposta da origem)

Tamanho máximo de memória da função

2 MB

128 MB (solicitação e resposta do visualizador)

10.240 MB (10 GB) (solicitação e resposta da origem)

Para ter mais informações, consulte Cotas do Lambda@Edge.

Tamanho máximo do código de função e bibliotecas incluídas 10 KB

1 MB (solicitação do visualizador e resposta do visualizador)

50 MB (solicitação da origem e resposta da origem)

Acesso à rede Não Sim
Acesso ao sistema de arquivos Não Sim
Acesso ao órgão de solicitação Não Sim
Acesso a dados de geolocalização e dispositivos Sim

Não (solicitação do visualizador e resposta do visualizador)

Sim (solicitação da origem e resposta da origem)

Pode criar e testar inteiramente no CloudFront Sim Não
Registro em log de funções e métricas Sim Sim
Definição de preços Nível gratuito disponível; cobrado por solicitação Sem nível gratuito; cobrado por solicitação e duração da função