View a markdown version of this page

ページ分割 - AWS SDKsとツール

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

ページ分割

多くの AWS サービスオペレーションは、単一のレスポンスに収まるよりも多くの結果を返すことができます。これが発生すると、レスポンスには、より多くの結果が利用可能であることを示すページ分割トークンが含まれます。結果の次のページを取得するには、そのトークンを後続のリクエストに含めます。このプロセスは、トークンが返されなくなるまで繰り返され、すべての結果を受け取ったことを示します。

ページ分割の仕組み

ページ分割 API オペレーションを呼び出すと、サービスはレスポンスごとに固定された最大項目数を返します。項目の合計数がこの最大値を超える場合、サービスはレスポンスにページ分割トークンを含めます。このトークンの特定の名前はサービスによって異なります。一般的な名前には、NextTokenMarkerContinuationToken、および が含まれますExclusiveStartKey。次のページをリクエストするには、次の呼び出しの対応するリクエストパラメータでこのトークン値を渡します。

ほとんどのページ分割オペレーションでは、ページごとに返される項目の最大数を制御するパラメータもサポートされています。このパラメータの一般的な名前には、MaxResultsMaxItemsMaxKeysMaxRecords、および が含まれますLimit

ページ分割トークンは、同じオペレーションからの以前のレスポンスで受け取った場合にのみ有効です。レスポンスにトークンが含まれていない場合、取得する結果はありません。

ページネーターの使用

ページ分割トークンを手動で追跡するのではなく、すべての AWS SDKsページネーター抽象化を提供します。ページネーターはトークン管理を自動的に処理し、連続する API コールを実行し、すべてのページが取得されるまで結果を生成します。ページネーターを使用すると、コードが簡素化され、トークンの受け渡しを忘れたり、誤って使用したりするなどのエラーのリスクが軽減されます。

SDKs 全体のページネーターの主な特性:

  • ページネーターは、基盤となる API オペレーションと同じ入力パラメータを受け入れます。

  • ページネーターは、利用可能なページが増えると自動的に検出し、取得します。

  • 応答でページ分割トークンが返されない場合、ページネーターはリクエストの実行を停止します。

  • 一部の SDKsには、取得されるページまたは項目の合計数を制限するメカニズムも用意されています。

言語で使用できるページネーター構文と使用パターンについては、特定の SDK 開発者ガイドを参照してください。

AWS SDKsとツールによるサポート

以下の SDK は、このトピックで説明する機能と設定をサポートします。部分的な例外があれば、すべて記載されています。JVM システムプロパティ設定は、 AWS SDK for Java と AWS SDK for Kotlin でのみサポートされます。

SDK サポート 注意または詳細情報
AWS CLI v2 はい すべてのコマンドに自動ページ分割が組み込まれています。を使用して無効に--no-paginateします。
SDK for C++ いいえ 手動トークン処理が必要です。
SDK for Go V2 (1.x) はい New<OperationName>Paginator タイプを使用します。
SDK for Go 1.x (V1) はい <OperationName>Pages メソッドを使用します。
SDK for Java 2.x はい クライアントで <operationName>Paginatorメソッドを使用します。
SDK for Java 1.x はい
SDK for JavaScript 3.x はい paginate<OperationName> 関数を使用します。
SDK for JavaScript 2.x いいえ 手動トークン処理が必要です。
SDK for Kotlin はい <operationName>Paginated 拡張機能を使用します。
SDK for .NET 4.x はい IPaginator インターフェイスを使用します。
SDK for .NET 3.x はい IPaginator インターフェイスを使用します。
SDK for PHP 3.x はい クライアントgetPaginatorで を使用します。
SDK for Python (Boto3) はい クライアントget_paginatorで を使用します。
SDK for Ruby 3.x はい ページ分割をサポートするレスポンス.eachで を使用します。
SDK for Rust はい リクエストビルダー.into_paginator()で を使用します。
SDK for Swift はい PaginatedSequence タイプを使用します。
PowerShell V5 のツール はい 組み込みの自動ページ分割。を使用して無効に-NoAutoIterationします。
PowerShell V4 のツール はい