翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
でのページ分割オプションの使用 AWS CLI
このトピックでは、 AWS CLIからの出力をページネーションするためのさまざまな方法を示します。
AWS CLIからページネーションを制御する方法は主に 2 つあります。
サーバー側のページ分割パラメータが最初に処理され、出力がクライアント側のページ分割に送信されます。
サーバー側のページ分割
項目の大きなリストを返すことができるコマンドの場合、 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
のページ分割と基本のサービスを同期させます。リスト全体を取得し、必要な解析オペレーションをローカルで実行することもできます。
クライアント側のページャー
AWS CLI バージョン 2 では、出力にクライアント側のページャープログラムを使用できます。デフォルトでは、この機能はオペレーティングシステムのデフォルトのページャープログラムを介してすべての出力を返します。
次の方法を優先順に使用して、出力ページャーを指定できます。
-
default
または名前付きプロファイルのconfig
ファイルのcli_pager
設定を使用する。 -
AWS_PAGER
環境変数を使用する。 -
PAGER
環境変数を使用する。
次の方法を優先順に使用して、外部ページ分割プログラムのすべての使用を無効にすることができます。
-
--no-cli-pager
コマンドラインオプションを使用して 1 回のコマンド使用のページャーを無効にする。 -
cli_pager
設定またはAWS_PAGER
変数を空の文字列に設定する。
クライアント側のページャーのトピック:
cli_pager 設定の使用方法
頻繁に利用される構成設定および認証情報を AWS CLIが維持するファイルに保存することができます。名前プロファイルの設定は、default
プロファイルの設定よりも優先されます。構成設定の詳細については、「の設定と認証情報ファイルの設定 AWS CLI」を参照してください。
次の例では、デフォルトの出力ページャーを less
プログラムに設定します。
[default] cli_pager=less
以下の例では、ページャーの使用を無効にするようにデフォルトを設定します。
[default] cli_pager=
AWS_PAGER 環境変数の設定方法
次の例では、デフォルトの出力ページャーを less
プログラムに設定します。環境変数の詳細については、「の環境変数の設定 AWS CLI」を参照してください。
--no-cli-pager オプションの使用方法
1 つのコマンドでのページャーの使用を無効にするには、--no-cli-pager
オプションを使用します。コマンドラインオプションの詳細については、「のコマンドラインオプション AWS CLI」を参照してください。
$
aws s3api list-objects \ --bucket amzn-s3-demo-bucket \
--no-cli-pager
{ "Contents": [ ...
ページャーフラグの使用方法
ページ分割プログラムで自動的に使用するフラグを指定できます。フラグは、使用するページ分割プログラムによって異なります。次に示すのは、less
および more
の一般的なデフォルトの例です。