でのページ分割オプションの使用 AWS CLI - AWS Command Line Interface

このドキュメントは、 のバージョン 1 AWS CLI 専用です。のバージョン 2 に関連するドキュメントについては AWS CLI、バージョン 2 ユーザーガイド を参照してください。

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

でのページ分割オプションの使用 AWS CLI

このトピックでは、 AWS CLIからの出力をページネーションするためのさまざまな方法を示します。

サーバー側のページ分割

項目の大きなリストを返すことができるコマンドの場合、 AWS Command Line Interface (AWS CLI) には、 がサービスの APIを AWS CLI 呼び出してリストに入力するときに出力に含まれる項目の数を制御するための複数のオプションがあります。

オプションは以下のとおりです。

デフォルトでは、 は個々のサービスによって決定されるページサイズ AWS CLI を使用し、使用可能なすべての項目を取得します。例えば、Amazon S3 では、デフォルトのページサイズは 1,000 です。3,500 のオブジェクトを含む Amazon S3 バケットで aws s3api list-objects を実行すると、 AWS CLI は Simple Storage Service (Amazon S3) に対して 4 つの呼び出しを自動的に実行し、サービス固有の分割ロジックをバックグラウンドで処理して、最終的な出力で 3,500 オブジェクトのすべてを返します。

--no-paginate パラメータの使用方法

--no-paginate オプションでは、クライアント側で分割トークンの追従を無効にします。コマンドを使用する場合、デフォルトで、 はページ分割を作成するために可能なすべての結果を返すために AWS CLI 、自動的に複数の呼び出しを行います。ページごとに 1 回の呼び出し。ページ分割を無効にすると、コマンド結果の最初のページに対して 1 回 AWS CLI だけ呼び出しが行われます。

例えば、3,500 個のオブジェクトを含む Amazon S3 バケットaws s3api list-objectsで を実行すると、 は Amazon S3 への最初の呼び出し AWS CLI のみを行い、最終出力の最初の 1,000 個のオブジェクトのみを返します。

$ aws s3api list-objects \ --bucket amzn-s3-demo-bucket \ --no-paginate { "Contents": [ ...

--page-size パラメータの使用方法

大量のリソースに対してリストコマンドを実行しているときに問題が発生する場合は、デフォルトのページサイズが大きすぎる可能性があります。これにより、 AWS サービスへの呼び出しが最大許容時間を超え、「タイムアウト」エラーが発生する可能性があります。--page-size オプションを使用して、 AWS サービスへの各呼び出しから、より少数の項目を AWS CLI リクエストするように指定できます。 AWS CLI は引き続き完全なリストを取得しますが、バックグラウンドでより多くのサービスAPI呼び出しを実行し、呼び出しごとに少数の項目を取得します。このため、個々の呼び出しがタイムアウトにならずに成功する可能性が高くなります。ページサイズを変更しても出力には影響しません。出力の生成に必要なAPI呼び出しの数にのみ影響します。

$ aws s3api list-objects \ --bucket amzn-s3-demo-bucket \ --page-size 100 { "Contents": [ ...

--max-items パラメータの使用方法

AWS CLI 一度に出力に含める項目を減らすには、 --max-itemsオプションを使用します。は、前述のように サービスのページ分割 AWS CLI を引き続き処理しますが、指定した時点での項目数のみを出力します。

$ aws s3api list-objects \ --bucket amzn-s3-demo-bucket \ --max-items 100 { "NextToken": "eyJNYXJrZXIiOiBudWxsLCAiYm90b190cnVuY2F0ZV9hbW91bnQiOiAxfQ==", "Contents": [ ...

--starting-token パラメータの使用方法

出力される項目の数 (--max-items) が、基盤となるAPI呼び出しによって返される項目の合計数よりも少ないNextToken場合、出力には、次の項目セットを取得するために後続のコマンドに渡すことができる が含まれます。次の例は、前の例で返された NextToken 値を使用して、2 番目の 100 項目を取得する方法を示しています。

注記

パラメータ --starting-token を null または空にすることはできません。前のコマンドが NextToken 値を返さない場合、返す項目はこれ以上存在せず、このコマンドを再度呼び出す必要はありません。

$ aws s3api list-objects \ --bucket amzn-s3-demo-bucket \ --max-items 100 \ --starting-token eyJNYXJrZXIiOiBudWxsLCAiYm90b190cnVuY2F0ZV9hbW91bnQiOiAxfQ== { "Contents": [ ...

指定された AWS サービスは、 を呼び出すたびに同じ順序で項目を返さない場合があります。--page-size--max-items に異なる値を指定した場合、項目の不足や重複など、予期しない結果になることがあります。これを防ぐには、--page-size--max-items に同じ数を使用して、 AWS CLI のページ分割と基本のサービスを同期させます。リスト全体を取得し、必要な解析オペレーションをローカルで実行することもできます。