Solución de problemas relacionados con la transmisión de respuestas en API Gateway - Amazon API Gateway

Solución de problemas relacionados con la transmisión de respuestas en API Gateway

La siguiente guía de solución de problemas puede ayudar a resolver los problemas relacionados con las API que usan transmisión de respuestas.

Solución de problemas generales

Puede usar el TestInvokeMethod o la pestaña de prueba de la consola para probar la respuesta de la transmisión. Es posible que las siguientes consideraciones afecten al uso de la invocación de prueba para la transmisión de respuesta:

  • Cuando prueba el método, API Gateway almacena en búfer la carga útil de respuesta transmitida. Una vez que se cumple alguna de las siguientes condiciones, API Gateway devuelve una respuesta única que contiene la carga útil almacenada en búfer:

    • La solicitud está completa

    • Han transcurrido 35 segundos

    • Se ha almacenado en búfer más de 1 MB de carga útil de respuesta

  • Si transcurren más de 35 segundos antes de que el método devuelva un estado de respuesta HTTP y todos los encabezados, el estado de respuesta devuelto en TestInvokeMethod es 0.

  • API Gateway no produce ningún registro de ejecución.

Una vez implementada la API, puede probar la respuesta de la transmisión mediante un comando curl. Le recomendamos que utilice la opción -i para incluir los encabezados de respuesta de protocolo en la salida. Visualización de los datos de respuesta según llegan, uso de la opción de curl --no-buffer

Errores de cURL de solución de problemas

Si está probando una integración y recibe el error curl: (18) transfer closed with outstanding read data remaining, asegúrese de que el tiempo de espera de la integración sea lo suficientemente largo. Si utiliza una función de Lambda, debe actualizar el tiempo de espera de respuesta de la función de Lambda. Para obtener más información, consulte Configuración del tiempo de espera de la función de Lambda.

Solución de problemas mediante el registro de acceso

Puede utilizar los registros de acceso de la etapa de API de REST para registrar y solucionar problemas de la transmisión de respuestas. Además de las variables existentes, puede utilizar las variables del registro de acceso siguientes:

$context.integration.responseTransferMode

El modo de transferencia de respuesta de la integración. Puede ser BUFFERED o STREAMED.

$context.integration.timeToAllHeaders

El tiempo entre que API Gateway establece la conexión de integración y se reciben del cliente todos los encabezados de respuesta de integración.

$context.integration.timeToFirstContent

El tiempo transcurrido entre el momento en que API Gateway establece la conexión de integración y el momento en que recibe los primeros bytes de contenido.

$context.integration.latency o $context.integrationLatency

El tiempo entre que API Gateway establece la conexión de integración y se completa la transmisión de respuesta de integración.

La siguiente figura muestra cómo estas variables del registro de acceso representan los diferentes componentes de un flujo de respuesta.

Variables de registro de acceso para la transmisión de respuestas en API Gateway

Para obtener más información acerca de los registros de acceso, consulte Configuración del registro de CloudWatch para las API de REST en API Gateway. También puede usar X-Ray para supervisar su flujo de respuesta. Para obtener más información, consulte Rastreo de las solicitudes de usuario a las API de REST mediante X-Ray en API Gateway.