handson(light): aws cli output

2.2. AWS CLIのページングオプション (page-size)

手順の目的

AWS CLIのページング機能を確認します。

設定値の指定

手順に必要な設定値を変数に格納をします。

1. S3バケット名

S3バケット名を指定します。

変数の設定:

S3_BUCKET_PREFIX='handson-cli-awscli-output'

コマンド:

aws_account_id=$( \
  aws sts get-caller-identity \
    --query 'Account' \
    --output text \
) \
  && echo ${aws_account_id}

結果(例):

<AWSアカウントID>

変数の設定:

S3_BUCKET_NAME="${S3_BUCKET_PREFIX}-${aws_account_id}" \
  && echo ${S3_BUCKET_NAME}

結果(例):

handson-cli-awscli-output-<AWSアカウントID>

2. ページサイズ

ページサイズ名を指定します。

変数の設定:

PAGE_SIZE='500'

設定値の確認

各変数に正しい設定値が格納されていることを確認します。

変数の確認:

cat << END

  # 1. S3_BUCKET_NAME:"handson-cli-awscli-output-<AWSアカウントID>"
       S3_BUCKET_NAME="${S3_BUCKET_NAME}"
  # 2. PAGE_SIZE:"500"
       PAGE_SIZE="${PAGE_SIZE}"

END

各変数について、上の行と下の行の値の内容もしくは形式が同じであることを確認します。 もし異なる場合は、それぞれの手順番号に戻って変数の設定を行います。

処理の実行

S3バケットのオブジェクト数の確認

S3バケットのオブジェクト数を確認します。

コマンド:

aws s3api list-objects-v2 \
  --bucket ${S3_BUCKET_NAME} \
  --page-size ${PAGE_SIZE} \
  --query 'length(Contents[])'

結果(例):

3500

注釈

AWS CLIは、page-sizeパラメータを指定すると、1回のリクエスト時のページサイズを変更し、AWS各サービスのページ分割ロジックをバックグラウンドで処理して、全ての一覧を出力しようとします。 (一回あたりのページサイズを減らし、リクエスト回数を増やすので、取得する出力数は変わらない。)

S3のデフォルトページサイズは1000です。

完了確認

「S3バケット"handson-cli-awscli-output-<AWSアカウントID>"のオブジェクト一覧を確認できている。」ことを確認します。

注釈

処理の実行で取得できていればOKです。

手順の完了