Quiero integrar un punto de enlace de Amazon API Gateway con AWS Lambda, pero he recibido un error.
Resolución
Sigue estos pasos para solucionar el error que se muestra.
Antes de empezar, activa Registros de Amazon CloudWatch para solucionar los errores de API Gateway. En Nivel de registro, elige INFO para generar registros de ejecución para todas las solicitudes.
API Gateway no tiene permisos de función de Lambda
El error Permisos no válidos en la función de Lambda se produce cuando API Gateway no tiene permisos para invocar la función de Lambda. Para resolver este problema, consulta ¿Cómo puedo resolver los errores de «permisos no válidos en la función de Lambda» de las API de REST de API Gateway?
**Nota:**Si usas otro servicio para desplegar tus recursos de API Gateway, como AWS CloudFormation, concede permisos al recurso AWS::Lambda::Permission.
Se produce una limitación
Si el servicio de backend está limitado porque hay un gran número de solicitudes, es posible que la API de API Gateway devuelva un error de servidor interno. Activa un mecanismo de retroceso exponencial y reintento y, a continuación, envía la solicitud de nuevo. Si el problema persiste, comprueba la cuota de API Gateway. Si superas la cuota de servicio, solicita un aumento de cuota para la simultaneidad de la función de Lambda, de modo que la función no se limite.
También puedes recibir errores Rate exceeded y 429 TooManyRequestsException debido a problemas de limitación de funciones de Lambda. Para obtener más información, consulta ¿Cómo soluciono los problemas de limitación de la función de Lambda con los errores «Rate exceeded» y «TooManyRequestsException»?
Falta la asignación de códigos de estado o es incorrecta
Si falta la asignación de códigos de estado HTTP o es incorrecta, puedes recibir un mensaje de error 500 similar al siguiente:
«Execution failed due to configuration error: Output mapping refers to an invalid method response: 2xx/4xx/5xx».
Para resolver este error, configura la solicitud de integración y la respuesta de la operación de API para que devuelva el código de estado correcto.
Las excepciones del servicio de Lambda no se administran
Si no administras las excepciones del servicio de Lambda, como el tiempo de espera de una función de Lambda, recibirás un error Lambda.Unknown. Para evitar que se agote el tiempo de espera de una función de Lambda, haz que el código de la función de Lambda sea idempotente.
Para obtener más información, consulta Patrones de gestión de errores en API Gateway y Lambda.
Problemas de tiempo de espera en los puntos de enlace de integración de Lambda
El límite de cuota predeterminado para el tiempo de espera de integración de API Gateway es de 29 segundos para todos los tipos de integración. Si la función de Lambda tarda más de 29 segundos en devolver la respuesta, la solicitud falla y se produce un error 504 Endpoint request timed out.
Asegúrate de que la función de Lambda devuelva la respuesta en 29 segundos. Si la función de Lambda no puede devolver la respuesta en 29 segundos, envía un aumento de cuota para el límite de tiempo de espera de la integración.
Nota: Puedes aumentar el tiempo de espera de la integración a más de 29 segundos para las API regionales y privadas. Sin embargo, un aumento del tiempo de espera de la integración puede requerir una reducción de la cuota de aceleración a nivel regional para tu cuenta de AWS.
Formato JSON de salida incorrecto de la función de Lambda
Si el resultado de la función de Lambda integrada no se ajusta al formato JSON especificado para las API de REST, se mostrará un error de proxy con formato incorrecto. Asegúrate de usar el formato JSON correcto para la salida de las funciones de Lambda para integraciones de proxy y de los autorizadores de Lambda.
Ejemplo de función de Lambda para la integración de proxy:
{
"isBase64Encoded": true|false,
"statusCode": httpStatusCode,
"headers": { "headerName": "headerValue", ... },
"multiValueHeaders": { "headerName": ["headerValue", "headerValue2", ...], ... },
"body": "..."
}
Información relacionada
¿Cómo puedo solucionar los problemas de errores de invocación HTTP de API Gateway?