

# Diferenças entre o CloudFront Functions e o Lambda@Edge
<a name="edge-functions-choosing"></a>

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](understanding-the-cache-key.md) 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](cloudfront-functions.md).

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](lambda-at-the-edge.md).

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. Para obter informações sobre as diferenças que se aplicam aos métodos auxiliares de modificação de origem, consulte [Escolher entre o CloudFront Functions e o Lambda@Edge](helper-functions-origin-modification.md#origin-modification-considerations).


|  | CloudFront Functions | Lambda@Edge | 
| --- | --- | --- | 
| Linguagens de programação | JavaScript (compatível com ECMAScript 5.1) | Node.js e Python | 
| Origens de eventos |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonCloudFront/latest/DeveloperGuide/edge-functions-choosing.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonCloudFront/latest/DeveloperGuide/edge-functions-choosing.html)  | 
|  Suporte a [Amazon CloudFront KeyValueStore](kvs-with-functions.md)  |  Sim O KeyValueStore do CloudFront é compatível somente com o [runtime 2.0 do JavaScript](functions-javascript-runtime-20.md)  |  Não  | 
| Escala | Até milhões de solicitações por segundo | Até 10.000 solicitações por segundo por região | 
| Duração da função | Submilissegundo |  Até 30 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 obter mais informações, consulte [Cotas do Lambda@Edge](cloudfront-limits.md#limits-lambda-at-edge).  | 
| Tamanho máximo do código de função e bibliotecas incluídas | 10 KB |  50 MB (solicitação 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 | 