AWS CLIのコマンド補完を有効にする
まえがき
AWS CLIはコマンド補完ができないのか〜不便だな〜と思って使っていたのですが、組み込みで補完機能が入っていることを先日知りました。
便利なので補完を有効にします。
環境
- OS: macOS Mojave
- OS version: 10.14.6
- AWS CLI version: aws-cli/1.16.243 Python/3.7.2 Darwin/18.7.0 botocore/1.12.233
- Shell: zsh AWS CLIはpip3で入れました。
補完を有効にする
公式ドキュメントに沿って進めます。
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に書いておけば良さそうですね。