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