Solución de problemas de HTTP puntos finales - Amazon Data Firehose

La entrega de transmisiones de Amazon Data Firehose a Apache Iceberg Tables en Amazon S3 está en versión preliminar y está sujeta a cambios.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Solución de problemas de HTTP puntos finales

En esta sección se describen los pasos de solución de problemas habituales cuando Amazon Data Firehose entrega datos a destinos de HTTP puntos de conexión genéricos y a destinos de socios, como Datadog, Dynatrace, LogicMonitor MongoDB, New Relic, Splunk o Sumo Logic. A los efectos de esta sección, todos los destinos aplicables se denominan puntos de enlace. HTTP Asegúrese de que la IAM función especificada en la transmisión de Firehose pueda acceder al depósito de respaldo de S3 y a la función Lambda para la transformación de datos (si la transformación de datos está habilitada). Además, asegúrate de que el IAM rol tenga acceso a los grupos de CloudWatch registros y a los flujos de registros para comprobar los registros de errores. Para obtener más información, consulte Conceder a Firehose acceso a un destino de HTTP punto final.

nota

La información de esta sección no se aplica a los siguientes destinos: Splunk, OpenSearch Service, S3 y Redshift.

CloudWatch Registros

Se recomienda encarecidamente activar CloudWatch Logging for Firehose. Los registros solo se publican cuando hay errores en la entrega en su destino.

Excepciones de destino

ErrorCode: HttpEndpoint.DestinationException

{ "deliveryStreamARN": "arn:aws:firehose:us-east-1:123456789012:deliverystream/ronald-test", "destination": "custom.firehose.endpoint.com...", "deliveryStreamVersionId": 1, "message": "The following response was received from the endpoint destination. 413: {\"requestId\": \"43b8e724-dbac-4510-adb7-ef211c6044b9\", \"timestamp\": 1598556019164, \"errorMessage\": \"Payload too large\"}", "errorCode": "HttpEndpoint.DestinationException", "processor": "arn:aws:lambda:us-east-1:379522611494:function:httpLambdaProcessing" }

Las excepciones de destino indican que Firehose puede establecer una conexión con su punto final y realizar una HTTP solicitud, pero no ha recibido un código de respuesta de 200. Las respuestas de 2xx que no sean 200 también generarán una excepción de destino. Amazon Data Firehose registra en Logs el código de respuesta y una carga útil de respuesta truncada recibida desde el punto de enlace configurado. CloudWatch Dado que Amazon Data Firehose registra el código de respuesta y la carga útil sin modificarlos ni interpretarlos, corresponde al punto final indicar el motivo exacto por el que rechazó la solicitud de entrega de Amazon Data Firehose. HTTP A continuación se indican las recomendaciones de solución de problemas más comunes para estas excepciones:

  • 400: Indica que estás enviando una solicitud incorrecta debido a una mala configuración de tu Amazon Data Firehose. Asegúrese de tener la URL, los atributos comunes, la codificación del contenido, la clave de acceso y las sugerencias de almacenamiento en búfer correctos para su destino. Consulte la documentación específica del destino sobre la configuración requerida.

  • 401: Indica que la clave de acceso que configuraste para tu transmisión de Firehose es incorrecta o falta.

  • 403: Indica que la clave de acceso que configuraste para tu transmisión de Firehose no tiene permisos para entregar datos al punto final configurado.

  • 413: Indica que la carga útil de solicitud que Amazon Data Firehose envía al punto final es demasiado grande para que el punto final la gestione. Intente reducir la sugerencia de almacenamiento en búfer al tamaño recomendado para su destino.

  • 429: Indica que Amazon Data Firehose envía solicitudes a un ritmo superior al que puede gestionar el destino. Ajuste la sugerencia de almacenamiento en búfer mediante el aumento del tiempo de almacenamiento en búfer o del tamaño del búfer (pero dentro del límite de su destino).

  • 5xx: indica que hay un problema con el destino. El servicio Amazon Data Firehose sigue funcionando correctamente.

importante

Importante: Si bien estas son las recomendaciones habituales para la solución de problemas, es posible que los puntos de conexión específicos tengan diferentes motivos para proporcionar los códigos de respuesta, por lo que primero se deben seguir las recomendaciones específicas de los puntos de conexión.

Respuesta no válida

ErrorCode: HttpEndpoint.InvalidResponseFromDestination

{ "deliveryStreamARN": "arn:aws:firehose:us-east-1:123456789012:deliverystream/ronald-test", "destination": "custom.firehose.endpoint.com...", "deliveryStreamVersionId": 1, "message": "The response received from the specified endpoint is invalid. Contact the owner of the endpoint to resolve the issue. Response for request 2de9e8e9-7296-47b0-bea6-9f17b133d847 is not recognized as valid JSON or has unexpected fields. Raw response received: 200 {\"requestId\": null}", "errorCode": "HttpEndpoint.InvalidResponseFromDestination", "processor": "arn:aws:lambda:us-east-1:379522611494:function:httpLambdaProcessing" }

Las excepciones de respuesta no válidas indican que Amazon Data Firehose recibió una respuesta no válida del punto final de destino. La respuesta debe ajustarse a las especificaciones de la respuesta o Amazon Data Firehose considerará que el intento de entrega ha sido un error y volverá a entregar los mismos datos hasta que se supere el tiempo de reintento configurado. Amazon Data Firehose trata las respuestas que no siguen las especificaciones de respuesta como errores, incluso si la respuesta tiene un estado 200. Si está desarrollando un punto final compatible con Amazon Data Firehose, siga las especificaciones de respuesta para garantizar que los datos se entreguen correctamente.

A continuación, se muestran algunos de los tipos comunes de respuestas no válidas y cómo solucionarlos:

  • Campos no válidos JSON o inesperados: indica que la respuesta no se puede deserializar correctamente JSON o tiene campos inesperados. Asegúrese de que la respuesta no tenga el contenido codificado.

  • Falta RequestId: indica que la respuesta no contiene un. requestId

  • RequestId no coincide: indica que lo que aparece requestId en la respuesta no coincide con lo salienterequestId.

  • Falta la marca de tiempo: indica que la respuesta no contiene ningún campo de marca de tiempo. El campo de marca de tiempo debe ser un número y no una cadena.

  • Falta el encabezado Content-Type: indica que la respuesta no contiene un encabezado “content-type: application/json”. No se acepta ningún otro content-type.

importante

Importante: Amazon Data Firehose solo puede entregar datos a puntos de conexión que cumplan con las especificaciones de solicitud y respuesta de Firehose. Si está configurando su destino para un servicio de terceros, asegúrese de utilizar el punto de conexión correcto compatible con Amazon Data Firehose, que probablemente sea diferente del punto de conexión de ingesta público. Por ejemplo, el punto final Amazon Data Firehose de Datadog es https://aws-kinesis-http-intake.logs.datadoghq.com/ mientras que su punto final público es. https://api.datadoghq.com/

Otros errores habituales

A continuación se indican los códigos de error y las definiciones adicionales.

  • Código de error:. HttpEndpoint RequestTimeout- Indica que el punto final tardó más de 3 minutos en responder. Si es el propietario del destino, reduzca el tiempo de respuesta del punto de conexión de destino. Si no es el propietario del destino, póngase en contacto con el propietario y pregúntele si se puede hacer algo para reducir el tiempo de respuesta (como reducir la sugerencia de almacenamiento en búfer para que se procesen menos datos por solicitud).

  • Código de error: HttpEndpoint. ResponseTooLarge- Indica que la respuesta es demasiado grande. La respuesta debe ser inferior a 1 MiB, incluidos los encabezados.

  • Código de error: HttpEndpoint. ConnectionFailed- Indica que no se ha podido establecer una conexión con el punto final configurado. Esto puede deberse a un error tipográfico en la URL configurada, a que Amazon Data Firehose no pueda acceder al punto de conexión o a que el punto de enlace tarde demasiado en responder a la solicitud de conexión.

  • Código de error:. HttpEndpoint ConnectionReset- Indica que se ha establecido una conexión pero el punto final la ha restablecido o cerrado prematuramente.

  • Código de error:. HttpEndpoint SSLHandshakeFailure- Indica que un SSL apretón de manos no se pudo completar correctamente con el punto final configurado.