CloudWatchのログの確認はAWSコンソールや公式のCLIよりもawslogsのほうが便利です。
pecoと連携することで、さらに便利になります。
以下のようなfunctionを.bashrc
とかに書いておきます。(※zshで動作確認しています。)
awslog() { local res=$(awslogs groups | peco --query "$LBUFFER") if [ -n "$res" ]; then awslogs get ${res} $@ fi }
$ awslog
とfunctionを呼び出すと、awslogs groups
が実行され、存在するロググループ一覧が表示されます。
その中から選択すると、選択されたログが表示されます。
$ awslog -G -w
のように引数も利用できます。
選択のみのバージョン
あとで引数を追加したり、コマンド履歴に残すのには、ロググループを選択するだけのほうが便利です。
awslog() { local res=$(awslogs groups | peco --query "$LBUFFER") if [ -n "$res" ]; then print -z "awslogs get ${res} $@" fi }
profileオプション対応バージョン
--profile
オプションを使う場合は、zparseoptsを利用します。(zshのみ利用可能)
awslog() { local profile_opt zparseopts -K -profile:=profile_opt local res=$(awslogs groups ${profile_opt} | peco --query "$LBUFFER") if [ -n "$res" ]; then print -z "awslogs get ${res} $@" fi }