

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 迭代器例外錯誤已過期
<a name="kinesis-fis-expired-iterator"></a>

 過期的疊代運算例外錯誤 (HTTP 400) 會在碎片疊代運算過期時發生，而且不再用於在呼叫 時擷取串流記錄`GetRecords`。當讀取操作之間發生延遲，這是由於長時間執行的資料處理任務、網路問題或應用程式停機時間所造成。

**注意**  
碎片疊代運算在發出後 5 分鐘內有效。

**處理例外狀況的建議**
+ 在碎片迭代器過期之前重新整理碎片迭代器。
+ 整合錯誤處理以取得新的迭代器。
+ 使用 Kinesis 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 Streamsoperations。

1. 設定持續時間：從初始測試的 5-10 分鐘開始。

1. 新增停止條件：[停止條件 AWS FIS](https://docs.aws.amazon.com/fis/latest/userguide/stop-conditions.html)。

1. 執行實驗：監控應用程式行為。

**動作詳細資訊**
+ **資源類型**：IAM 角色 ARN
+ **目標操作**： `GetRecords`
+ ****錯誤代碼****：`ExpiredIteratorException`(HTTP 400)
+ ****描述****：提供的迭代器超過允許的最長存留期，模擬記錄處理太慢或檢查點邏輯失敗的案例。

**Parameters**
+ **IAM 角色 ARN**：您的應用程式用於 Kinesis Data Streams 操作的角色。
+ **操作**：目標操作： `GetRecords`
+ **資源清單**：特定的串流名稱或 ARNs。
+ **持續時間**：實驗持續時間。這是可設定的。
+ **強度**：要調節的請求百分比。

**所需的許可**
+ `kinesis:InjectApiError`