Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Risoluzione dei problemi degli endpoint HTTP
Questa sezione descrive le procedure di risoluzione dei problemi più comuni quando si ha a che fare con Amazon Data Firehose che fornisce dati a destinazioni endpoint HTTP generiche e a destinazioni partner, tra cui Datadog, Dynatrace, LogicMonitor MongoDB, New Relic, Splunk o Sumo Logic. Ai fini di questa sezione, tutte le destinazioni applicabili sono indicate come endpoint HTTP. Assicurati che il ruolo IAM specificato nel tuo stream Firehose possa accedere al bucket di backup S3 e alla funzione Lambda per la trasformazione dei dati (se la trasformazione dei dati è abilitata). Inoltre, assicurati che il ruolo IAM abbia accesso al gruppo di log e ai flussi di CloudWatch log per controllare i log degli errori. Per ulteriori informazioni, vedere Concedere l'accesso a Firehose a una destinazione di endpoint HTTP.
Nota
Le informazioni contenute in questa sezione non si applicano alle seguenti destinazioni: Splunk, OpenSearch Service, S3 e Redshift.
CloudWatch Registri
Si consiglia vivamente di abilitare la CloudWatch registrazione per. I log vengono pubblicati solo in caso di errori durante la distribuzione alla destinazione.
Eccezioni di destinazione
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" }
Le eccezioni di destinazione indicano che Firehose è in grado di stabilire una connessione all'endpoint ed effettuare una richiesta HTTP, ma non ha ricevuto un codice di risposta 200. Anche le risposte 2xx che non sono 200 genereranno un'eccezione di destinazione. Amazon Data Firehose registra il codice di risposta e un payload di risposta troncato ricevuto dall'endpoint configurato in Logs. CloudWatch Poiché Amazon Data Firehose registra il codice di risposta e il payload senza modifiche o interpretazioni, spetta all'endpoint fornire il motivo esatto per cui ha rifiutato la richiesta di consegna HTTP di Amazon Data Firehose. Di seguito sono riportati i suggerimenti per la risoluzione dei problemi più comuni per queste eccezioni:
-
400: indica che stai inviando una richiesta errata a causa di un'errata configurazione di Amazon Data Firehose. Assicurati di avere URL, attributi comuni, codifica del contenuto, chiave di accesso e suggerimenti di buffering corretti per la destinazione. Consulta la documentazione specifica della destinazione sulla configurazione richiesta.
-
401: indica che la chiave di accesso configurata per lo stream Firehose è errata o mancante.
-
403: indica che la chiave di accesso configurata per lo stream Firehose non dispone delle autorizzazioni per fornire dati all'endpoint configurato.
-
413: indica che il payload della richiesta che Amazon Data Firehose invia all'endpoint è troppo grande per essere gestito dall'endpoint. Prova a ridurre il suggerimento di buffering alla dimensione consigliata per la destinazione.
-
429: indica che Amazon Data Firehose invia richieste a una velocità superiore a quella gestita dalla destinazione. Ottimizza il suggerimento per il buffering aumentando il tempo di buffering e and/or aumentando la dimensione del buffering (ma sempre entro il limite della destinazione).
-
5xx: indica che esiste un problema con la destinazione. Il servizio Amazon Data Firehose funziona ancora correttamente.
Importante
Importante: sebbene questi siano i suggerimenti più comuni per la risoluzione dei problemi, endpoint specifici possono avere diversi motivi per fornire i codici di risposta e i suggerimenti specifici per gli endpoint devono essere seguiti per primi.
Risposta non valida
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" }
Le eccezioni di risposta non valida indicano che Amazon Data Firehose ha ricevuto una risposta non valida dalla destinazione dell'endpoint. La risposta deve essere conforme alle specifiche di risposta, altrimenti Amazon Data Firehose considererà il tentativo di consegna un fallimento e riconsegnerà nuovamente gli stessi dati fino al superamento della durata del nuovo tentativo configurata. Amazon Data Firehose considera le risposte che non rispettano le specifiche di risposta come errori, anche se la risposta ha lo stato 200. Se stai sviluppando un endpoint compatibile con Amazon Data Firehose, segui le specifiche di risposta per assicurarti che i dati vengano consegnati correttamente.
Di seguito sono riportati alcuni dei tipi comuni di risposte non valide e come risolverli:
-
JSON non valido o campi imprevisti: indica che la risposta non può essere deserializzata correttamente come JSON o contiene campi imprevisti. Assicurati che la risposta non sia codificata nel contenuto.
-
Mancante RequestId: indica che la risposta non contiene un RequestId.
-
RequestId not match: indica che il RequestID nella risposta non corrisponde al RequestID in uscita.
-
Timestamp mancante: indica che la risposta non contiene un campo timestamp. Il campo timestamp deve essere un numero e non una stringa.
-
Intestazione Content-Type mancante: indica che la risposta non contiene un'intestazione "content-type: application/json". Non sono accettati altri content-type.
Importante
Importante: Amazon Data Firehose può fornire dati solo agli endpoint che seguono le specifiche di richiesta e risposta di Firehose. Se stai configurando la tua destinazione con un servizio di terze parti, assicurati di utilizzare l'endpoint compatibile con Amazon Data Firehose corretto, che probabilmente sarà diverso dall'endpoint di ingestione pubblico. Ad esempio, l'endpoint Amazon Data Firehose di Datadog è https://aws-kinesis-http-intake.logs.datadoghq.com/
mentre l'endpoint pubblico lo è. https://api.datadoghq.com/
Altri errori comuni
Di seguito sono elencati codici di errore e definizioni aggiuntivi.
-
Codice HttpEndpoint di errore:. RequestTimeout - Indica che l'endpoint ha impiegato più di 3 minuti per rispondere. Se sei il proprietario della destinazione, riduci il tempo di risposta dell'endpoint di destinazione. Se non sei il proprietario della destinazione, contatta il proprietario e chiedi può ridurre il tempo di risposta (ad esempio ridurre il suggerimento di buffering in modo che la quantità di dati elaborati per richiesta sia inferiore).
-
Codice di errore: HttpEndpoint. ResponseTooLarge - Indica che la risposta è troppo grande. La risposta deve essere inferiore a 1 MiB incluse le intestazioni.
-
Codice di errore: HttpEndpoint. ConnectionFailed - Indica che non è stato possibile stabilire una connessione con l'endpoint configurato. Ciò potrebbe essere dovuto a un errore di battitura nell'URL configurato, all'inaccessibilità dell'endpoint ad Amazon Data Firehose o al fatto che l'endpoint impiega troppo tempo a rispondere alla richiesta di connessione.
-
Codice di errore:. HttpEndpoint ConnectionReset - Indica che è stata effettuata una connessione ma è stata ripristinata o chiusa prematuramente dall'endpoint.
-
Codice di errore:. HttpEndpoint SSLHandshakeErrore: indica che non è stato possibile completare correttamente un handshake SSL con l'endpoint configurato.