LoginSignup
0
0

More than 1 year has passed since last update.

Windows環境のPowerShellからaws-cli v2を使う時にいい感じに入力補完する

Last updated at Posted at 2021-10-27

PowerShellからAWSのリソースを操作するために、AWS Tools for PowerShellモジュールが提供されていますが。

上記モジュールを利用せずに、aws-cli v2を利用することも多いかと思います。
本記事は、PowerShellコンソールからaws-cli v2を利用する際にいい感じに利用する方法の紹介となります。

aws_completer.exeで入力補完をする

Windows環境にaws-cli v2をインストールすると、入力補完を提供するaws_completer.exeがインストールされます。

試しに、aws_completer.exeaws ec2 describeの入力補完の提案を確認してみます。

aws_completer.exe
#環境変数  COMP_LINE、COMP_POINT を入力してから aws_completer.exe を実行すると入力補完の一覧を取得できる
$Env:COMP_LINE = "aws ec2 describe"
$Env:COMP_POINT = 17
aws_completer.exe

image.png

上記、画像ように入力補完の一覧が取得できます。
AWSドキュメントに記載もある通り、aws-cli v2ではPowerShellで入力補完を提供するRegister-ArgumentCompleterコマンドレットとaws_completer.exeを組み合わせる事によりPowerShell上で入力補完を使うことができるようになります。

この設定方法については下記ドキュメントがありますので、こちらに記載されている通り。

PowerShellの起動プロファイルに設定を追加すると、PowerShellコンソール上でaws-cliの入力補完が使えるようになります。

Windows でのコマンド補完の設定

起動プロファイルにaws-cli用の入力補完を追加
Register-ArgumentCompleter -Native -CommandName aws -ScriptBlock {
    param($commandName, $wordToComplete, $cursorPosition)
        $env:COMP_LINE=$wordToComplete
        $env:COMP_POINT=$cursorPosition
        aws_completer.exe | ForEach-Object {
            [System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterValue', $_)
        }
        Remove-Item Env:\COMP_LINE     
        Remove-Item Env:\COMP_POINT  
}

aws s3とまで入力してCTRL-SPACEを入力すると画像の用にコマンド入力の補完を確認できるかと思います。

image.png

cli-auto-promptパラメータを利用して入力補完を利用する

aws-cli v2にはcli-auto-promptというパラメータが用意されており、このパラメータを付けてawsコマンドを実行すると自動プロンプトモードが有効になります。

image.png

こちらを利用することによっても、自動プロンプトモードで入力補完を利用することができます。

F3キーを入力するとドキュメント表示のパネルも付いていたりかなりリッチな入力補完となります。

毎回、cli-auto-promptパラメータを入力するのが大変なので。
aws-cli用の設定ファイルである、~/.aws/configに下記の登録をしておけば、不完全なawsコマンドを実行時に自動プロンプトモードが起動する用になります。

~/.aws/config
# on-partialで不完全なawsコマンド実行時に自動プロンプトモードが起動する
[default]
cli_auto_prompt = on-partial

configファイルを設定し、aws s3まで入力してENTERを実行すると自動プロンプトモードになる。

image.png

総評

aws_completer.exeを利用していて不便は感じていませんでしたが。
ある時、cli_auto_promptの自動プロンプトの存在に気が付き、さわってみたら想像以上にリッチなプロンプトだったため割と驚きました。

この2つを併用することにより、Windows + PowerShell な環境での aws-cli v2 利用がだいぶ快適になるような気はします。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0