Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅
中国的 Amazon Web Services 服务入门
(PDF)。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
对 Amazon Data Firehose 中的错误进行问题排查
如果在传输或处理数据时 Firehose 遇到错误,则它会一直重试,直至超过配置的重试持续时间。如果重试持续时间在成功传输数据之前结束,则 Firehose 会将数据备份到配置的 S3 备份存储桶。如果目的地是 Amazon S3,并且传输失败或传输到备份 S3 存储桶失败,Firehose 会不断重试,直到保留期结束。
有关使用追踪配送错误的信息 CloudWatch,请参阅使用 CloudWatch Logs 监控 Amazon Data Firehose。
- Direct PUT
对于 DirectPut
Firehose 流,Firehose 会将记录保留 24 小时。对于其数据来源为 Kinesis 数据流的 Firehose 流,您可以按照更改数据留存期中的说明更改保留期。在这种情况下,Firehose 会无限地重试以下操作:DescribeStream
、GetRecords
和 GetShardIterator
。
如果 Firehose 流使用 DirectPut
,请检查 IncomingBytes
和 IncomingRecords
指标,查看是否有传入流量。如果您正在使用 PutRecord
或 PutRecordBatch
,请务必捕获异常并重试。我们建议使用带指数退避的重试策略,并且提供抖动和多次重试功能。另外,如果您使用 PutRecordBatch
API,请确保即使API调用成功,您的代码也会检查响应FailedPutCount中的值。
- Kinesis Data Stream
如果 Firehose 流使用 Kinesis 数据流作为源,请检查源数据流的 IncomingBytes
和 IncomingRecords
指标。此外,请确保为 Firehose 流发出 DataReadFromKinesisStream.Bytes
和 DataReadFromKinesisStream.Records
指标。