Como solucionar problemas de erros 500, 502 e 503 causados pelas funções do Lambda@Edge no CloudFront?
Associei uma função do AWS Lambda@Edge a uma distribuição do Amazon CloudFront. Agora estou recebendo erros 500, 502 ou 503. Como solucionar os erros?
Breve descrição
Os erros 500, 502 e 503 do Lambda@Edge indicam o seguinte:
-
O código de status HTTP 500 indica que a função do Lambda retornou um erro de execução.
-
O código de status HTTP 502 indica que a resposta da função do Lambda foi formada incorretamente ou incluiu conteúdo que não é válido.
-
O código de status HTTP 503 indica que o CloudFront está limitado devido às cotas de serviço do Lambda (anteriormente conhecidas como limites).
Consulte as seções a seguir para saber as causas do erro e como solucioná-las.
Resolução
A função do Lambda@Edge retorna um erro 500
Um erro de execução 500 ocorre quando o CloudFront não recebe uma resposta do Lambda. Isso acontece porque há exceções não tratadas na função, há um erro no código ou o ambiente de execução não é compatível.
Para resolver o erro 500 gerado pelo Lambda@Edge, é necessário depurar seu código adicionando instruções de registro em log para funções do Lambda. Para saber mais, consulte Four Steps for Debugging your Content Delivery on AWS (Quatro etapas para depurar sua entrega de conteúdo na AWS) e revise as informações em I – Execution Errors (I – Erros de execução). Essas instruções de registro gravam mensagens nos arquivos de log do CloudWatch que monitoram a execução da função do CloudFront. Você pode revisar essas instruções nos arquivos de log do CloudWatch para verificar se a função está funcionando corretamente.
Para obter mais informações, consulte Lambda function errors in Node.js (Erros da função do Lambda em Node.js) e Lambda function errors in Python (Erros da função do Lambda em Python).
A função do Lambda@Edge retorna um erro 502
Depois que a função é executada, o CloudFront recebe uma resposta do Lambda. Um erro 502 será retornado se a estrutura do objeto da resposta não estiver em conformidade com a estrutura de eventos do Lambda@Edge. Um erro 502 também é retornado se a resposta não contiver cabeçalhos válidos ou outros campos não válidos.
Para resolver o erro 502 gerado pelo Lambda@Edge, verifique a função do Lambda@Edge para os seguintes problemas comuns:
- Objeto JSON retornado
- Campos obrigatórios ausentes
- A resposta tem um objeto que não é válido
- A adição ou atualização não é permitida ou há cabeçalhos somente leitura
- Tamanho máximo do corpo excedido
- Caracteres ou valores não são válidos
Para obter mais informações, consulte Testing and debugging Lambda@Edge functions (Testar e depurar funções do Lambda@Edge) e Restrictions on edge functions (Restrições em funções de borda).
A função do Lambda@Edge retorna um erro 503
O serviço Lambda limita as execuções em cada região e retorna um erro 503 se você exceder a cota.
Para resolver o erro 503, verifique as métricas e os arquivos de log do CloudWatch do Lambda@Edge quanto aos seguintes problemas comuns:
- Execuções simultâneas por região
- Cotas de funções atingidas
Para obter mais informações, consulte Quotas on Lambda@Edge (Cotas no Lambda@Edge).
Observação: você deve revisar os arquivos de log do CloudWatch na região correta para ver os arquivos de log criados quando o CloudFront executou a função do Lambda.
Informações relacionadas
Lambda@Edge design best practices (Práticas recomendadas de design do Lambda@Edge)
Conteúdo relevante
- AWS OFICIALAtualizada há 6 meses
- AWS OFICIALAtualizada há 2 anos
- AWS OFICIALAtualizada há 2 anos
- AWS OFICIALAtualizada há 2 anos