AWS CLI v2 のぺージャーを無効にする方法。
AWS CLI v2 のぺージャーを無効にする方法をメモしておく。
$ aws --version aws-cli/2.0.30 Python/3.7.4 Darwin/19.5.0 botocore/2.0.0dev34 $ docker container run --volume ~/.aws:/root/.aws --rm --env AWS_PAGER= amazon/aws-cli --version aws-cli/2.0.30 Python/3.7.3 Linux/4.19.76-linuxkit botocore/2.0.0dev34
AWS CLI v2 のぺージャーを無効にする方法
AWS CLI v2 はデフォルトでページャーを使うようになった
AWS CLI バージョン 2 では、クライアント側のページャープログラムを出力に使用できます。デフォルトでは、この機能はオペレーティングシステムのデフォルトのページャープログラムを介してすべての出力を返します。
AWS CLI v1 はデフォルトではページャーは使わなかったけど AWS CLI v2 はデフォルトで OS のデフォルトのページャーを使うようになった。
個人的にはページャーが必要なときは自分で使うから AWS CLI v2 の仕様変更はあまり嬉しみがないというかむしろ余計なお世話のように感じるけど、変わってしまったものは仕方ないので AWS CLI v2 がページャーを使わなくしていく。
config ファイルでページャーを無効にする
AWS CLI v2 はページャーを config ファイルの cli_pager
オプションに設定しておくとそのページャーを使って出力するけど cli_pager
オプションを空の文字列にしておくとページャーを使わなくなる。
[default] cli_pager=
config ファイルを直接いじるかこんな感じのコマンドを実行すればいい。 自分が普段使ってる環境は config を設定しておくのがよさそう。
$ aws configure set cli_pager '' $ cat ~/.aws/config [default] cli_pager= # 省略
環境変数でページャーを無効にする
自分が普段使ってる環境は config を設定しておくのが手軽だけどシェルスクリプトを作って他の人に使ってもらったり CI で動かすときはページャーの使用は config の設定に依存したくないと思うので環境変数でページャーを無効にしていく。
AWS CLI v2 はページャーを AWS_PAGER
環境変数に設定しておくとそのページャーを使って出力するけど AWS_PAGER
環境変数を空の文字列にしておくとページャーを使わなくなる。
export AWS_PAGER=
みたいな感じで AWS_PAGER
環境変数をエクスポートしておくとよい。
$ export AWS_PAGER= $ aws ec2 describe-regions
環境変数を一時的に設定してページャーを無効にする
AWS_PAGER
をエクスポートして環境を汚したくないときは環境変数を一時的に設定してページャーを無効にしていく。
$ env AWS_PAGER= aws ec2 describe-regions
AWS CLI v2 を Docker で使ってるなら docker container run
するときに AWS_PAGER
環境変数を --env AWS_PAGER=
みたいに指定していく。
$ docker container run --volume ~/.aws:/root/.aws --rm --env AWS_PAGER= amazon/aws-cli ec2 describe-regions
以上。