AWS CLI のエイリアスコマンドを使ってみる
2021-04-26AWS CLI には任意のエイリアスコマンドを設定することができるということを最近知ったので、試してみます。
目次
AWS CLI のエイリアス
AWS CLI には、よく使うコマンドや長いコマンドに対してあらかじめエイリアスを設定することができます。
この機能自体は、 v1 であれば 1.11.24
以降、 v2 であれば 2.0.0
以降で利用可能ということで、だいぶ前から使える機能だったようです。
- feature:alias: Add ability to alias commands in the CLI
設定方法
設定方法は至って簡単で、 ~/.aws/cli
ディレクトリを作成し、そこに alias
という名前のファイルを置くだけです。
alias
ファイルでは、下記のようにエイリアスを記述します。
[toplevel]
whoami = sts get-caller-identity
上記の設定では、下記のコマンドが等価となります。
aws sts get-caller-identity
aws whoami
エイリアスコマンドで引数を受け取りたい場合
設定したエイリアスコマンドで引数を受け取って使いたい場合は、下記のように設定します。
create-bucket =
!f() {
aws s3api create-bucket \
--bucket "${1}" \
--create-bucket-configuration "LocationConstraint=${2}" \
--region "${2}"
}; f
上記の例では第一引数にバケット名、第二引数に対象リージョンを指定することで新たに S3 バケットを作成します。
$ aws create-bucket mybucket ap-northeast-1
{
"Location": "http://mybucket.s3.amazonaws.com/"
}
いろいろ設定してみた
設定方法がわかったので、普段よく使うコマンドにエイリアスを設定してみました。
AWS アカウント ID を取得する
id = sts get-caller-identity \
--query 'Account' \
--output text
実行ユーザー (ロール) の ARN を取得する
myarn = sts get-caller-identity \
--query 'Arn' \
--output text
ランタイムを指定して Lambda 関数一覧を取得する
# 1st parameter: <runtime>
lambda-fn-runtime =
!f() {
aws lambda list-functions \
--query "Functions[?contains(to_string(Runtime),\`${1}\`)]"
}; f
ECR にログインする
# 1st parameter: <region>
ecr-login =
!f() {
aws ecr get-login-password \
--region "${1}" \
| docker login \
--username AWS \
--password-stdin $(aws id).dkr.ecr.${1}.amazonaws.com
}; f
まとめ
AWS CLI のエイリアスを試してみた話でした。
AWS Lab のリポジトリには様々なサービスに対するエイリアスコマンドが記述された alias
が公開されていますが、最終更新が 3 年前とかなので自分で作っていくのが良さそうです。
awslabs/awscli-aliases: Repository for AWS CLI aliases.
今回のブログで紹介したエイリアスは下記のリポジトリにおいています。
michimani/awscli-aliases: Collection of my alias commands for the AWS CLI.
comments powered by Disqus