Como posso solucionar o erro do “servidor interno” com o código de status 500 para endpoints do API Gateway que se integram ao Lambda?

Data da última atualização: 19/10/2022

Enviei uma solicitação HTTP para meu endpoint de API do Amazon API Gateway que se integra ao AWS Lambda (por exemplo, /lambda-resource GET). Recebi uma resposta com o código de status 500 com o seguinte erro: {"message”: “Internal server error"}

Como posso solucionar isso?

Breve descrição

Este erro pode ter as seguintes causas:

  • Permissões da função Lambda
  • Problemas no controle de utilização
  • Mapeamento incorreto ou ausente do código de status HTTP
  • Erros não tratados

Resolução

Antes de começar, siga as etapas para ativar o Amazon CloudWatch Logs para solucionar problemas de erros do API Gateway.

Observação: em Log level (Nível de log), escolha INFO para gerar logs de execução para todas as solicitações.

Permissões da função Lambda

O erro “Invalid permissions on Lambda function” ocorre se o API Gateway não tiver permissões para invocar a função Lambda. Para resolver isso, consulte Como soluciono os erros de “Invalid permissions on Lambda function” das APIs REST da API do Gateway?

Observação: se você usou outro serviço, como o AWS CloudFormation, para implantar seus recursos do API Gateway, certifique-se de ter permissões para o recurso AWS::Lambda::Permission.

Problemas no controle de utilização

Se o serviço de backend for limitado devido a um grande número de solicitações, a API do API Gateway pode retornar um “Erro interno do servidor”. Você pode ativar um mecanismo de recuo exponencial e repetição e tentar a solicitação novamente. Se o problema persistir, verifique o limite de cota do API Gateway. Se você excedeu o limite de cota de serviço, poderá solicitar um aumento de cota.

Você também pode receber erros de “Rate exceeded” e 429 “TooManyRequestsException” devido a problemas de controle de utilização da função Lambda. Para obter mais informações, consulte Como solucionar problemas de controle de utilização de funções do Lambda com erros “Rate exceeded” e 429 “TooManyRequestsException”?

Você também pode solicitar um aumento no limite de simultaneidade da função Lambda para que a função não seja limitada. Para obter instruções, consulte Como solicito um aumento do limite de simultaneidade para minha função do Lambda?

Mapeamento incorreto ou ausente do código de status HTTP

O mapeamento incorreto ou ausente do código de status HTTP também pode resultar em erros 500 semelhantes aos seguintes:

"Execution failed due to configuration error: Output mapping refers to an invalid method response: 2xx/4xx/5xx".

Para resolver esse erro, verifique se existe uma resposta do método de API para o código de status retornado do back-end e está mapeado corretamente.

Erros não tratados

Erros não tratados no Lambda indicam que a função se esgota devido a erros no código da função. Para evitar esse erro, certifique-se de que o código da função Lambda seja idempotente.

Você também pode usar a ferramenta de depuração AWS X-Ray para obter mais detalhes sobre quanto tempo diferentes seções do código da sua função levam para serem concluídas.

Para obter mais informações, consulte Padrões de tratamento de erros no Amazon API Gateway e no AWS Lambda.


Este artigo foi útil?


Precisa de ajuda com faturamento ou suporte técnico?