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

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 puntos de conexión HTTP

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

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 de conexión y realizar una solicitud HTTP, pero no ha recibido un código de respuesta 200. Las respuestas 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 Como Amazon Data Firehose registra el código de respuesta y la carga útil sin modificarlos ni interpretarlos, corresponde al punto de conexión indicar el motivo exacto por el que rechazó la solicitud de entrega HTTP de Amazon Data Firehose. A continuación se indican las recomendaciones de solución de problemas más comunes para estas excepciones:

  • 400: indica que está enviando una solicitud incorrecta debido a una configuración incorrecta de 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 configuró para el flujo de Firehose es incorrecta o falta.

  • 403: indica que la clave de acceso que configuró para el flujo de Firehose no tiene permisos para entregar los datos en el punto de conexión configurado.

  • 413: indica que la carga útil de la solicitud que Amazon Data Firehose envía al punto de conexión es demasiado grande para que este pueda gestionarla. 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 una velocidad superior a la 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 respuestas no válidas indican que Amazon Data Firehose recibió una respuesta no válida del punto de conexión de destino. La respuesta debe cumplir con las especificaciones de las respuestas; de lo contrario, Amazon Data Firehose considerará que el intento de entrega ha sido un error y volverá a entregar los mismos datos hasta que se supere la duración del reintento configurada. Amazon Data Firehose trata las respuestas que no siguen las especificaciones de la respuesta como errores, incluso si la respuesta tiene un estado 200. Si está desarrollando un punto de conexión compatible con Amazon Data Firehose, siga las especificaciones de las respuestas 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:

  • JSON no válido o campos inesperados: indica que la respuesta no se puede deserializar correctamente como JSON o que 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 el RequestID de la respuesta no coincide con el RequestID saliente.

  • 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 los datos en puntos de conexión que cumplan con las especificaciones de las solicitudes y respuestas 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 de conexión Amazon Data Firehose de Datadog es https://aws-kinesis-http-intake.logs.datadoghq.com/, mientras que su punto de conexión 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 puede acceder al punto de conexión o a que el punto de conexión tarda demasiado en responder a la solicitud de conexión.

  • Código de error: HttpEndpoint. ConnectionReset - Indica que se estableció una conexión pero el punto final la restableció o cerró prematuramente.

  • Código de error:. HttpEndpoint SSLHandshakeError: indica que un protocolo de enlace SSL no se pudo completar correctamente con el punto final configurado.