全力で怠けたい

怠けるために全力を尽くしたいブログ。

AWS CLI v2 のぺージャーを無効にする方法。

AWS CLI v2 のぺージャーを無効にする方法をメモしておく。

AWS CLI のバージョン。

$ 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

以上。

参考サイト