¿Cómo se solucionan los errores 500, 502 y 503 que provocan las funciones de Lambda@Edge en CloudFront?

3 minutos de lectura
0

He asociado la función de AWS Lambda@Edge con una distribución de Amazon CloudFront. Ahora recibo los errores 500, 502 o 503. ¿Cómo puedo solucionar estos errores?

Descripción corta

Los errores 500, 502 y 503 en Lambda@Edge indican lo siguiente:

  • El código de estado HTTP 500 indica que la función Lambda ha devuelto un error de ejecución.

  • El código de estado HTTP 502 indica que la respuesta de la función Lambda se ha formado incorrectamente o que ha incluido un tipo de contenido que no es válido.

  • El código de estado HTTP 503 indica que CloudFront está limitado debido a las Service Quotas de Lambda (anteriormente conocidas como límites).

Consulte las siguientes secciones para conocer las causas de estos errores y solucionarlos.

Resolución

La función Lambda@Edge devuelve un error de tipo 500

Se produce un error de ejecución de tipo 500 cuando CloudFront no recibe ninguna respuesta de Lambda. Esto se produce debido a que hay excepciones no controladas en la función, a que hay un error en el código o bien porque se trata de un entorno de ejecución no compatible.

Para resolver el error de tipo 500 que genera Lambda@Edge, debe depurar el código agregando declaraciones de registro para las funciones de Lambda. Si desea obtener más información, consulte Four Steps for Debugging your Content Delivery on AWS y revise la información que aparece en I — Execution Errors. Estas declaraciones de registro escriben mensajes en los archivos de registro de CloudWatch que supervisan la ejecución de dicha función en CloudFront. Puede revisar esas declaraciones en los archivos de registro de CloudWatch para comprobar que la función se esté ejecutando correctamente.

Si desea obtener más información, consulte Lambda function errors in Node.js y Lambda function errors in Python.

La función Lambda@Edge devuelve un error de tipo 502

Tras ejecutar la función, CloudFront recibe una respuesta de Lambda. Devuelve un error de tipo 502 si la estructura del objeto de la respuesta no se ajusta a la estructura de eventos de Lambda@Edge. También devuelve un error de tipo 502 si la respuesta contiene encabezados u otros campos no válidos.

Para resolver este error que genera Lambda@Edge, compruebe la función Lambda@Edge para ver si presenta alguno de los siguientes problemas comunes:

  • Objeto JSON devuelto.
  • Faltan campos obligatorios.
  • La respuesta contiene un objeto no válido.
  • No se permite agregar o actualizar, o bien hay encabezados de solo lectura.
  • Se ha rebasado el tamaño máximo del cuerpo.
  • Hay caracteres o valores no válidos.

Si desea obtener más información, consulte Testing and debugging Lambda@Edge functions y Restrictions on edge functions.

La función Lambda@Edge devuelve un error de tipo 503

El servicio Lambda limita las ejecuciones en cada región y devuelve un error de tipo 503 si se rebasa la cuota.

Para resolver el error 503, compruebe los archivos de registro y las métricas de CloudWatch para Lambda@Edge en busca de los siguientes problemas comunes:

  • Límite de ejecuciones simultáneas por región
  • Se ha alcanzado el límite de las cuotas

Si desea obtener más información, consulteQuotas on Lambda@Edge.

Nota: Tiene que revisar los archivos de registro de CloudWatch en la región adecuada para poder ver los que se crearon en el momento en que CloudFront ejecutó la función de Lambda.


Información relacionada

Prácticas de diseño recomendadas para Lambda@Edge

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 2 años