

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 迭代器过期异常错误
<a name="kinesis-fis-expired-iterator"></a>

 迭代器过期异常错误（HTTP 400）是在分片迭代器过期时发生的，在调用 `GetRecords` 时不再用于检索流记录。读取操作之间因为长时间运行数据处理任务、网络问题或应用程序停机而产生延迟时，就会发生这种情况。

**注意**  
分片迭代器在发出后 5 分钟有效。

**处理异常的建议**
+ 在分片迭代器到期之前进行刷新。
+ 整合错误处理以获取新的迭代器。
+ 利用 Kinesis Client Library（KCL），该服务可自动管理分片迭代器的到期时间。

有关更多信息，请参阅[什么是 AWS Fault Injection Service？](https://docs.aws.amazon.com/fis/latest/userguide/what-is.html)

**进行基础实验**

1. 创建实验模板：使用 AWS FIS 控制台。

1. 选择操作：使用 `aws:kinesis:inject-api-expired-iterator-exception` 操作。

1. 配置目标：指定 IAM 角色及 Kinesis Data Streams 操作。

1. 设置持续时间：最初测试从 5-10 分钟开始。

1. 添加停止条件：的[停止条件 AWS FIS](https://docs.aws.amazon.com/fis/latest/userguide/stop-conditions.html)。

1. 运行实验：监控应用程序的行为。

**操作详细信息**
+ **资源类型**：IAM 角色 ARN
+ **目标操作**：`GetRecords`
+ ****错误代码****：`ExpiredIteratorException`（HTTP 400）
+ ****描述****：提供的迭代器超出了允许的最大期限，模拟了记录处理速度太慢或检查点操作逻辑失败的场景。

**参数**
+ **IAM 角色 ARN**：应用程序用于 Kinesis Data Streams 操作的角色。
+ **操作**：目标操作：`GetRecords`
+ **资源列表**：特定的直播名称或 ARNs。
+ **持续时间**：实验的持续时间。此项可配置。
+ **强度**：要施加限制的请求的百分比。

**所需的权限**
+ `kinesis:InjectApiError`