

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 期限切れイテレーター例外エラー
<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`
+ **リソースリスト**: 特定のストリーム名または ARN。
+ **期間**: 実験期間。これは設定可能です。
+ **強度: **スロットリングするリクエストの割合。

**必要なアクセス許可**
+ `kinesis:InjectApiError`