As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Solução de problemas de endpoints de HTTP
Esta seção descreve etapas comuns de solução de problemas ao lidar com o Amazon Data Firehose entregando dados para destinos genéricos de endpoints HTTP e destinos de parceiros, incluindo Datadog, Dynatrace, LogicMonitor MongoDB, New Relic, Splunk ou Sumo Logic. Para os fins desta seção, todos os destinos aplicáveis são chamados de endpoints de HTTP. Certifique-se de que o perfil do IAM especificado no seu fluxo do Firehose tenha acesso ao bucket de backup do S3 e à função do Lambda para transformação de dados (se a transformação de dados estiver habilitada). Além disso, certifique-se de que a função do IAM tenha acesso ao grupo de CloudWatch registros e aos fluxos de registros para verificar os registros de erros. Para obter mais informações, consulte Concessão ao Firehose de acesso a um destino de endpoint de HTTP.
nota
As informações nesta seção não se aplicam aos seguintes destinos: Splunk, OpenSearch Service, S3 e Redshift.
CloudWatch Registros
É altamente recomendável que você habilite o CloudWatch Logging for. Os registros só são publicados quando há erros na entrega ao seu destino.
Exceções 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" }
As exceções de destino indicam que o Firehose é capaz de estabelecer uma conexão com o endpoint e fazer uma solicitação HTTP, mas não recebeu um código de resposta 200. As respostas 2xx que não sejam as respostas 200 também resultarão em uma exceção de destino. O Amazon Data Firehose registra o código de resposta e uma carga de resposta truncada recebida do endpoint configurado no Logs. CloudWatch Como o Amazon Data Firehose registra em log o código de resposta e a carga útil sem modificação ou interpretação, cabe ao endpoint fornecer o motivo exato da rejeição da solicitação do Amazon Data Firehose de entrega HTTP. Veja a seguir as recomendações de solução de problemas mais comuns para essas exceções:
-
400: indica que você está enviando uma solicitação inválida devido a uma configuração incorreta do Amazon Data Firehose. Certifique-se de ter o URL, os atributos comuns, a codificação do conteúdo, a chave de acesso e as sugestões de buffer corretos para o seu destino. Consulte a documentação específica do destino sobre a configuração necessária.
-
401: indica que a chave de acesso que você configurou para o fluxo do Firehose está incorreta ou ausente.
-
403: indica que a chave de acesso que você configurou para o fluxo do Firehose não tem permissões para entregar dados ao endpoint configurado.
-
413: indica que a carga útil da solicitação que o Amazon Data Firehose envia para o endpoint é muito grande para ser processada pelo endpoint. Tente reduzir a sugestão de buffer para o tamanho recomendado para o destino.
-
429: indica que o Amazon Data Firehose está enviando solicitações em uma taxa maior do que a capacidade do destino. Ajuste sua dica de buffer aumentando o tempo and/or de buffer, aumentando o tamanho do buffer (mas ainda dentro do limite do seu destino).
-
5xx: indica que há um problema com o destino. O serviço do Amazon Data Firehose ainda está funcionando corretamente.
Importante
Importante: embora essas sejam as recomendações comuns de solução de problemas, endpoints específicos podem ter motivos diferentes para fornecer os códigos de resposta e as recomendações específicas do endpoint devem ser seguidas primeiro.
Resposta invá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" }
Exceções de respostas inválidas indicam que o Amazon Data Firehose recebeu uma resposta inválida do destino do endpoint. A resposta deve estar em conformidade com as especificações de resposta ou o Amazon Data Firehose considerará a tentativa de entrega uma falha e entregará novamente os mesmos dados até que o período configurado para novas tentativas seja excedido. O Amazon Data Firehose trata as respostas que não seguem as especificações de resposta como falhas, mesmo que a resposta tenha o status 200. Se você estiver desenvolvendo um endpoint compatível com o Amazon Data Firehose, siga as especificações de resposta para garantir que os dados sejam entregues com êxito.
Veja abaixo alguns dos tipos comuns de respostas inválidas e como corrigi-las:
-
Campos JSON inválidos ou inesperados: indica que a resposta não pode ser desserializada adequadamente como JSON ou tem campos inesperados. Certifique-se de que a resposta não seja codificada por conteúdo.
-
Ausente RequestId: indica que a resposta não contém um RequestiD.
-
RequestId não corresponde: indica que o RequestiD na resposta não corresponde ao RequestiD de saída.
-
Timestamp ausente: indica que a resposta não contém um campo de timestamp. O campo de timestamp deve ser um número e não uma string.
-
Cabeçalho de tipo de conteúdo ausente: indica que a resposta não contém um cabeçalho "content-type: application/json". Nenhum outro tipo de conteúdo é aceito.
Importante
Importante: o Amazon Data Firehose só pode entregar dados a endpoints que sigam as especificações de resposta e de solicitações do Firehose. Se você estiver configurando o destino para um serviço de terceiros, certifique-se de usar o endpoint correto compatível com o Amazon Data Firehose, que provavelmente será diferente do endpoint público de ingestão. Por exemplo, o endpoint do Amazon Data Firehose do Datadog é https://aws-kinesis-http-intake.logs.datadoghq.com/
, enquanto seu endpoint público é https://api.datadoghq.com/
.
Outros erros comuns
Os códigos de erro e as definições adicionais estão listados abaixo.
-
Código de erro: HttpEndpoint. RequestTimeout - Indica que o endpoint demorou mais de 3 minutos para responder. Se você for o proprietário do destino, diminua o tempo de resposta do endpoint de destino. Se você não for o proprietário do destino, entre em contato com o proprietário e pergunte se algo pode ser feito para reduzir o tempo de resposta (ou seja, diminuir a sugestão de buffer para que haja menos dados sendo processados por solicitação).
-
Código de erro: HttpEndpoint. ResponseTooLarge - Indica que a resposta é muito grande. A resposta deve ter menos do que 1 MiB, incluindo cabeçalhos.
-
Código de erro: HttpEndpoint. ConnectionFailed - Indica que não foi possível estabelecer uma conexão com o endpoint configurado. Isso pode ser devido a um erro de digitação no URL configurado, ao endpoint não estar acessível ao Amazon Data Firehose ou ao endpoint demorar muito para responder à solicitação de conexão.
-
Código de erro: HttpEndpoint. ConnectionReset - Indica que uma conexão foi estabelecida, mas foi reiniciada ou fechada prematuramente pelo endpoint.
-
Código de erro: HttpEndpoint. SSLHandshakeFalha - indica que um handshake SSL não pôde ser concluído com êxito com o endpoint configurado.