yyp٩( 'ω' )و

色々触って遊んでます

AWS CLIのコマンド補完を有効にする

まえがき

AWS CLIはコマンド補完ができないのか〜不便だな〜と思って使っていたのですが、組み込みで補完機能が入っていることを先日知りました。
便利なので補完を有効にします。

環境

補完を有効にする

公式ドキュメントに沿って進めます。

aws_completerを探してパスに追加する

aws_completerがコマンドの補完をしてくれる本体みたいです。
私の場合は下記にありました。

% which aws_completer
$HOME/Library/Python/3.7/bin//aws_completer

aws_completerが含まれているフォルダのパスを.zshrcに書いてパスに追加します。

export PATH=$HOME/Library/Python/3.7/bin:$PATH

コマンド補完を有効にする

パスに追加しただけでは有効にならないので、スクリプトを実行します。

% source $HOME/Library/Python/3.7/bin/aws_zsh_completer.sh  

これもシェルにログインするたびに実行する必要があるので.zshrcに書いておきます。
これで有効になっているのでAWS CLIで補完ができるかどうか試してみます。
aws sまで入力してタブを押すと下記のようにsで始まるコマンドが出てきたらOKです。

% aws s3
s3                 sagemaker          secretsmanager     service-quotas     ses                sms                sqs                storagegateway     swf
s3api              sagemaker-runtime  securityhub        servicecatalog     shield             snowball           ssm                sts
s3control          sdb                serverlessrepo     servicediscovery   signer             sns                stepfunctions      support

まとめ

AWS CLIはコマンドが多くて覚えられないので、補完してくれるのはとても便利だなと思います。
ただ、デフォルトで有効だともっと便利だなあと…
私はインフラなのでインスタンスに入って作業することが多いので、インスタンスごとに有効にするのはちょっと大変だったり…
もしインスタンスで実行する必要がある場合、構築時にユーザデータとかでスクリプトを実行するようにしたら良さそうな感じです。
Dockerの場合はDockerfileに書いておけば良さそうですね。