Restrições ao Lambda@Edge
As restrições a seguir aplicam-se somente ao Lambda@Edge.
Sumário
- Resolução do DNS
- Códigos de status de HTTP
- Versionamento da função do Lambda
- Região do Lambda
- Permissões de função do Lambda
- Recursos do Lambda
- Tempos de execução compatíveis
- Cabeçalhos do CloudFront
- Restrições do corpo da solicitação com a opção de incluir corpo
- Tempo limite de resposta e de manutenção (somente origens personalizadas)
Para obter informações sobre cotas, consulte Cotas do Lambda@Edge.
Resolução do DNS
O CloudFront executa uma resolução de DNS no nome de domínio da origem antes de executar a solicitação de origem da função do Lambda@Edge. Se o serviço DNS do domínio estiver com problemas e o CloudFront não puder resolver o nome de domínio para obter o endereço IP, a função do Lambda@Edge não será invocada. O CloudFront retornará um código de status HTTP 502 (gateway inativo) ao cliente. Para ter mais informações, consulte Erro de DNS (NonS3OriginDnsError).
Para ter mais informações sobre como gerenciar failover de DNS, consulte Configurar failover de DNS no Guia do desenvolvedor do Amazon Route 53.
Códigos de status de HTTP
As funções do Lambda@Edge para eventos de resposta do visualizador não podem modificar o código de status HTTP da resposta, independentemente de a resposta ter vindo da origem ou do cache do CloudFront.
Versionamento da função do Lambda
Você deve usar uma versão numerada da função do Lambda, e não $LATEST
nem aliases.
Região do Lambda
A função do Lambda deve estar na região Leste dos EUA (Norte da Virgínia).
Permissões de função do Lambda
A função de execução do IAM associada à função do Lambda deve permitir que os principais de serviço lambda.amazonaws.com
e edgelambda.amazonaws.com
assumam a função. Para ter mais informações, consulte Configurar permissões e perfis do IAM para o Lambda@Edge.
Recursos do Lambda
Os seguintes recursos do Lambda não são compatíveis com o Lambda@Edge:
-
Configurações de gerenciamento de runtime do Lambda diferentes de Auto (padrão)
-
Configuração de sua função do Lambda para acessar recursos na VPC
-
Variáveis de ambiente do Lambda (exceto variáveis de ambiente reservadas, que são automaticamente compatíveis)
-
Funções do Lambda com Gerenciar dependências do AWS Lambda com camadas
-
Simultaneidade provisionada do Lambda
nota
As funções do Lambda@Edge têm os mesmos recursos de Simultaneidade regional que as funções do Lambda. Para ter mais informações, consulte Cotas do Lambda@Edge.
-
Funções do Lambda com mais de 512 MB de armazenamento temporário
-
Capturar logs de funções do Lambda no formato estruturado JSON
-
Controle de detalhamento em nível de log dos logs da função do Lambda
-
Definir para qual grupo de logs do Amazon CloudWatch o Lambda deve enviar logs
Tempos de execução compatíveis
O Lambda@Edge oferece suporte a funções do Lambda com os seguintes tempos de execução:
Node.js |
Python |
---|---|
|
|
¹ Essa versão do Node.js chegou ao fim da vida útil e em breve será descontinuada pelo AWS Lambda.
² Essa versão do Node.js chegou ao fim da vida útil e foi totalmente descontinuada pelo AWS Lambda.
Não é possível criar nem atualizar funções com versões descontinuadas do Node.js. Só é possível associar funções existentes a essas versões com distribuições do CloudFront. Funções com essas versões que estão associadas a distribuições continuam a ser executadas. No entanto, recomendamos mover sua função para versões mais recentes do Node.js. Para obter mais informações, consulte Política de descontinuação de tempo de execução no Guia do desenvolvedor do AWS Lambda e a Agenda de versões do Node.js
dica
Como prática recomendada, use as versões mais recentes dos runtimes fornecidos para melhorias de desempenho e novos atributos.
Cabeçalhos do CloudFront
As funções do Lambda@Edge podem ler, editar, remover ou adicionar qualquer um dos cabeçalhos do CloudFront listados em Adicionar cabeçalhos de solicitação do CloudFront.
Observações
-
Para que o CloudFront adicione esses cabeçalhos, configure-o para adicioná-los usando uma política de cache ou política de solicitação de origem.
-
O CloudFront adiciona os cabeçalhos após o evento de solicitação do visualizador, o que significa que eles não estão disponíveis para as funções do Lambda@Edge em uma solicitação do visualizador. Os cabeçalhos só estão disponíveis para funções do Lambda@Edge em uma solicitação e resposta de origem.
-
Se a solicitação do visualizador incluir cabeçalhos que têm esses nomes e você configurou o CloudFront para adicionar esses cabeçalhos usando uma política de cache ou política de solicitação de origem, o CloudFront substituirá os valores de cabeçalho que estavam na solicitação do visualizador. As funções voltadas para o visualizador veem o valor do cabeçalho da solicitação do visualizador, enquanto as funções voltadas para a origem veem o valor do cabeçalho adicionado pelo o CloudFront.
-
Se uma função de solicitação do visualizador adicionar o cabeçalho
CloudFront-Viewer-Country
, a validação falhará e o CloudFront retornará o código de status HTTP 502 (gateway inválido) para o visualizador.
Restrições do corpo da solicitação com a opção de incluir corpo
Ao escolher a opção Incluir corpo para expor o corpo da solicitação à função do Lambda@Edge, as informações e limites de tamanho a seguir se aplicam às partes do corpo que são expostas ou substituídas.
-
O CloudFront sempre codifica em base64 o corpo da solicitação antes de expô-lo ao Lambda@Edge.
-
Se o corpo da solicitação for grande, o CloudFront o truncará antes de expô-lo ao Lambda@Edge da seguinte forma:
-
Para eventos de solicitação do visualizador, o corpo é truncado em 40 KB.
-
Para eventos de solicitação da origem, o corpo é truncado em 1 MB.
-
-
Se você acessar o corpo da solicitação como somente leitura, o CloudFront enviará o corpo da solicitação original completo à origem.
-
Se a função do Lambda@Edge substituir o corpo da solicitação, os limites de tamanho a seguir se aplicarão ao corpo retornado pela função:
-
Se a função do Lambda@Edge retornar o corpo como texto simples:
-
Para eventos de solicitação do visualizador, o limite do corpo é de 40 KB.
-
Para eventos de solicitação da origem, o limite do corpo é de 1 MB.
-
-
Se a função do Lambda@Edge retornar o corpo como texto codificado em base64:
-
Para eventos de solicitação do visualizador, o limite do corpo é de 53,2 KB.
-
Para eventos de solicitação da origem, o limite do corpo é de 1,33 MB.
-
-
nota
Se a função do Lambda@Edge retornar um corpo que exceda esses limites, a solicitação falhará com um código de status HTTP 502 (Erro de validação do Lambda). Recomendamos que você atualize a função do Lambda@Edge para que o corpo não exceda esses limites.
Tempo limite de resposta e de manutenção (somente origens personalizadas)
Se estiver usando as funções do Lambda@Edge para definir o tempo limite de resposta ou de manutenção para as origens da distribuição, verifique se você está especificando um valor compatível com a origem. Para ter mais informações, consulte Cotas de tempo limite de resposta e manutenção.