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

Amazon Data Firehose se conocía anteriormente como Amazon Kinesis 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 genéricos de puntos de enlace HTTP 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 la función de IAM que se especifica en la transmisión de entrega 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 la función de IAM tenga acceso a los grupos de registros y a los flujos de CloudWatch registros para comprobar los registros de errores. Para obtener más información, consulte Conceder a Firehose acceso a un destino de punto final 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 final 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á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:

  • 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 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 HttpEndpoint de error:. 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 .SSL HandshakeFailure: indica que no se pudo completar correctamente un protocolo de enlace SSL con el punto final configurado.