¿Cómo se puede solucionar el error de “servidor interno” con código de estado 500 para los puntos de conexión de API Gateway que se integran con Lambda?

4 minutos de lectura
0

He enviado una solicitud HTTP a mi punto de conexión de API de Amazon API Gateway que se integra con AWS Lambda (por ejemplo, /lambda-resource GET). He recibido una respuesta con el código de estado 500 y el siguiente error: {"message": "Internal server error"} (“mensaje”: “error del servidor interno”) ¿Cómo puedo solucionar este error?

Descripción corta

Este error puede deberse a lo siguiente:

  • Permisos de la función Lambda
  • Problemas de limitación
  • Asignación de código de estado HTTP incorrecta o ausente
  • Errores no controlados

Resolución

Antes de comenzar, siga los pasos para activar los registros de Amazon CloudWatch para solucionar los errores de API Gateway.

Nota: En Log level (Nivel de registro), elija INFO a fin de generar registros de ejecución para todas las solicitudes.

Permisos de la función Lambda

El error “Invalid permissions on Lambda function” (Permisos no válidos en la función Lambda) se produce si la API Gateway no tiene permisos para invocar la función Lambda. Para solucionarlo, consulte ¿Cómo soluciono el error “Invalid permissions on Lambda function” (Permisos no válidos en la función de Lambda) de las API de REST de API Gateway?

Nota: Si utilizó otro servicio, como AWS CloudFormation, para implementar sus recursos de API Gateway, asegúrese de tener permisos para el recurso AWS::Lambda::Permission.

Problemas de limitación

Si el servicio de backend está limitado debido a un gran número de solicitudes, es posible que la API Gateway devuelva un “Internal server error” (Error interno del servidor). Puede activar un mecanismo de retroceso exponencial y reintento y realizar la solicitud de nuevo. Si el problema persiste, compruebe el límite de cuota de la API Gateway. Si ha superado el límite de la cuota de servicio, puede solicitar un aumento de la cuota.

También es posible que reciba los errores “Rate exceeded” (Tasa superada) y 429 “TooManyRequestsException” (Excepción de demasiadas solicitudes) debido a problemas de limitación de las funciones de Lambda. Para más información, consulte ¿Cómo se puede solucionar el problema de la limitación controlada de la función Lambda con los errores “Velocidad superada” y 429 “TooManyRequestsException” (Excepción de demasiadas solicitudes)?

También puede solicitar un aumento del límite de concurrencia de la función Lambda para que la función no se limite. Si desea obtener instrucciones, consulte ¿Cómo solicito un aumento del límite de concurrencia para mi función Lambda?

Asignación de código de estado HTTP incorrecta o ausente

La asignación de códigos de estado HTTP incorrectos o ausentes también puede dar lugar a errores 500, de manera similar a la siguiente:

“Execution failed due to configuration error: Output mapping refers to an invalid method response: 2xx/4xx/5xx” (La ejecución falló debido a un error de configuración: la asignación de salida se refiere a una respuesta de método no válida: 2xx/4xx/5xx).

Para resolver este error, asegúrese de que existe una respuesta de método de API para el código de estado devuelto por el servidor y que está asignado correctamente.

Errores no controlados

Los errores no controlados en Lambda indican que la función ha agotado el tiempo de espera debido a errores en el código de la función. Para evitar este error, asegúrese de que el código de la función Lambda sea idempotente.

También puede utilizar la herramienta de depuración AWS X-Ray para obtener más información sobre el tiempo que tardan las diferentes secciones del código de su función en completarse.

Para obtener más información, consulte Error handling patterns in Amazon API Gateway and AWS Lambda (Patrones de gestión de errores en Amazon API Gateway y AWS Lambda).


Información relacionada

¿Cómo puedo solucionar los errores 5xx de API Gateway?

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año