AWS CLI v2 でページ分割(less)を無効化できることを最近知った件

Enter 1 発で「とぅるん!」と表示させたい人向け
2020.03.24

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

今回は小ネタの紹介です。

AWS CLI v2 の出力を表示する際、ページ分割(pager)が効いてると思います。

$ aws iam list-roles
Roles:
- Arn: arn:aws:iam::xxxxxxxxxxxx:role/admin
  AssumeRolePolicyDocument:
    Statement:
    - Action: sts:AssumeRole
      Effect: Allow
      Principal:
        Service: ec2.amazonaws.com
    Version: '2012-10-17'
  CreateDate: '2018-10-17T16:43:37+00:00'
  Description: Allows EC2 instances to call AWS services on your behalf.
  MaxSessionDuration: 3600
  Path: /
  RoleId: AROAxxxxxxxxxxxxxxxxx
  RoleName: admin
- Arn: arn:aws:iam::xxxxxxxxxxxx:role/admin-role
  AssumeRolePolicyDocument:
: <-- 何か入力しないと進まない

いわゆる less コマンドが効いてる状態ですね。

less は便利なんですが「使うか、使わないかは自分で決めたい!」と思ってました。

AWS CLI v2 だと有効無効を設定出来る

つい先日、AWS CLI v2 だとページ分割を自分で設定できることに気づきました。

設定方法は下記のとおり。

Config で設定

恒久的にページ分割を無効化したい場合は、~/.aws/config ファイルに以下のように書きます。

~/.aws/config

[default]
cli_pager=

export コマンドで設定

一時的にページ分割を無効化したい場合は、exportsetx コマンドで以下のように設定します。

Linux or macOS

$ export AWS_PAGER=""

Windows

C:\> setx AWS_PAGER ""

先述の設定で恒久的に無効化している環境で、一時的に有効化したい場合は以下のように設定します。

Linux or macOS

$ export AWS_PAGER="less"

Windows

C:\> setx AWS_PAGER "less"

確認

$ aws iam list-roles
<snip>
- Arn: arn:aws:iam::xxxxxxxxxxxx:role/test-wp-role
  AssumeRolePolicyDocument:
    Statement:
    - Action: sts:AssumeRole
      Effect: Allow
      Principal:
        Service: ec2.amazonaws.com
    Version: '2012-10-17'
  CreateDate: '2018-01-18T00:49:58+00:00'
  Description: Allows EC2 instances to call AWS services on your behalf.
  MaxSessionDuration: 3600
  Path: /
  RoleId: AROAxxxxxxxxxxxxxxxxx
  RoleName: test-wp-role
$  <-- 最後まで表示されてプロンプトが返ってきました!

ページ分割されることなく、プロンプトが返ってくること確認できましたね。

以上!大阪オフィスの丸毛(@marumo1981)でした!