Creating and using aliases in the AWS CLI
エイリアスは、頻繁に使用するコマンドやスクリプトを短縮するために AWS Command Line Interface (AWS CLI) で作成できるショートカットです。設定フォルダにある alias ファイルにエイリアスを作成します。
前提条件
エイリアスコマンドを使用するには、以下を完了する必要があります。
AWS CLI をインストールして設定します。詳細については、AWS CLI の最新バージョンのインストールまたは更新 および Authentication and access credentials for the AWS CLI を参照してください。
-
1.11.24 または 2.0.0 の最小 AWS CLI バージョンを使用してください。
-
(オプション) AWS CLI エイリアス bash スクリプトを使用するには、bash 対応のターミナルを使用する必要があります。
ステップ 1: エイリアスファイルを作成する
alias ファイルを作成するには、ファイルナビゲーションとテキストエディタを使用するか、ステップバイステップの手順に従って任意のターミナルを使用します。エイリアスファイルをすばやく作成するには、次のコマンドブロックを使用します。
エイリアスファイルを作成するには
-
AWS CLI 設定フォルダに
cliという名前のフォルダを作成します。デフォルトでは、構成フォルダは Linux または macOS では「~/.aws/」、Windows 上は「%USERPROFILE%\.aws\」にあります。これは、ファイルナビゲーションまたは次のコマンドを使用して作成できます。作成されるフォルダ「
cli」のデフォルトパスは、Linux または macOS では「~/.aws/cli/」、Windows では「%USERPROFILE%\.aws\cli」上にあります。 -
cliフォルダで、拡張子なしのaliasという名前のテキストファイルを作成し、最初の行に[toplevel]を追加します。任意のテキストエディタを使用してこのファイルを作成するか、次のコマンドを使用できます。
ステップ 2: エイリアスを作成する
エイリアスは、基本的なコマンドまたは bash スクリプトを使用して作成できます。
基本的なコマンドエイリアスの作成
前の手順で作成した alias ファイルで、次の構文を使用してコマンドを追加することにより、エイリアスを作成できます。
[Syntax] (構文)
[aliasname=command--options]
aliasname は、エイリアスの呼び名です。command は、呼び出すコマンドで、他のエイリアスを含めることができます。エイリアスにオプションやパラメータを含めたり、エイリアスを呼び出すときに追加したりできます。
次の例では、aws sts
get-caller-identity コマンドを使用して、「aws whoami」という名前のエイリアスを作成します。このエイリアスは既存の AWS CLI コマンドを呼び出すことから、aws プレフィックスなしでコマンドを記述できます。
whoami = sts get-caller-identity
次の例は、前の whoami の例を用いて、Account フィルターオプションと output テキストオプションを追加します。
whoami2 = sts get-caller-identity --queryAccount--output text
サブコマンドエイリアスの作成
注記
サブコマンドのエイリアス機能には 1.11.24 または 2.0.0 以降の AWS CLI バージョンが必要です。
前の手順で作成した alias ファイルで、次の構文を使用してコマンドを追加することにより、サブコマンドのエイリアスを作成できます。
[Syntax] (構文)
[commandcommandGroup][aliasname=command--options]
commandGroup はコマンド名前空間です。例えば、コマンド aws ec2 describe-regions は ec2 コマンドグループに属します。aliasname は、エイリアスの呼び名です。command は、呼び出すコマンドで、他のエイリアスを含めることができます。エイリアスにオプションやパラメータを含めたり、エイリアスを呼び出すときに追加したりできます。
次の例では、aws ec2
describe-regions コマンドを使用して、「aws ec2 regions」という名前のエイリアスを作成します。このエイリアスは ec2 コマンド名前空間の既存の AWS CLI コマンドを呼び出すため、aws ec2 プレフィックスなしでコマンドを記述できます。
[command ec2] regions = describe-regions --query Regions[].RegionName
コマンド名前空間外のコマンドからエイリアスを作成するには、コマンド全体の前に感嘆符を付けます。次の例では、aws iam
list-instance-profiles コマンドを使用して、「aws ec2
instance-profiles」という名前のエイリアスを作成します。
[command ec2] instance-profiles = !aws iam list-instance-profiles
注記
エイリアスは既存のコマンド名前空間のみを使用します。新しいコマンド名前空間を作成することはできません。例えば、johnsmith コマンド名前空間がまだ存在していな場合、[command johnsmith] セクションでエイリアスを作成することはできません。
bash スクリプトエイリアスの作成
警告
AWS CLI エイリアス bash スクリプトを使用するには、bash 対応のターミナルを使用する必要があります。
次の構文を使用して、より高度なプロセス用の bash スクリプトを使用してエイリアスを作成できます。
[Syntax] (構文)
aliasname= !f() {script content}; f
aliasname はエイリアスの呼び名であり、script content はエイリアスを呼び出すときに実行するスクリプトです。
次の例では、opendns を使用して現在の IP アドレスを出力します。他のエイリアスでもエイリアスを使用できるため、次の myip エイリアスは、他のエイリアス内から IP アドレスのアクセスを許可または取り消す場合に便利です。
myip = !f() { dig +short myip.opendns.com @resolver1.opendns.com }; f
次のスクリプト例では、前の aws myip エイリアスを呼び出して、Amazon EC2 セキュリティグループの受信 IP アドレスを認可します。
authorize-my-ip = !f() { ip=$(aws myip) aws ec2 authorize-security-group-ingress --group-id ${1} --cidr $ip/32 --protocol tcp --port 22 }; f
bash スクリプトを使用するエイリアスを呼び出すと、変数は常に入力した順序で渡されます。bash スクリプトでは、変数名は考慮されず、表示される順序のみが考慮されます。次の textalert エイリアスの例では、--message オプションの変数が最初で、--phone-number オプションが 2 番目です。
textalert = !f() { aws sns publish --message "${1}" --phone-number ${2} }; f
ステップ 3: エイリアスを呼び出す
alias ファイルに作成したエイリアスを実行するには、次の構文を使用します。エイリアスを呼び出すときに、追加のオプションを追加できます。
[Syntax] (構文)
$awsaliasname
次の例では、aws whoami コマンドエイリアスを使用しています。
$aws whoami{ "UserId": "A12BCD34E5FGHI6JKLM", "Account": "1234567890987", "Arn": "arn:aws:iam::1234567890987:user/userName" }
次の例では、aws whoami エイリアスを追加オプションとともに使用して、Account 出力で text の数のみを返します。
$aws whoami --query Account --output text1234567890987
次の例では、aws ec2 regions サブコマンドエイリアスを使用しています。
$aws ec2 regions[ "ap-south-1", "eu-north-1", "eu-west-3", "eu-west-2", ...
bash スクリプト変数を使用したエイリアスの呼び出し
bash スクリプトを使用するエイリアスを呼び出すと、変数は入力された順序で渡されます。bash スクリプトでは、変数の名前は考慮されず、表示される順序のみが考慮されます。例えば、次の textalert エイリアスでは、オプション --message の変数が最初で、--phone-number が 2 番目です。
textalert = !f() { aws sns publish --message "${1}" --phone-number ${2} }; f
textalert エイリアスを呼び出すときは、エイリアスで実行されるのと同じ順序で変数を渡す必要があります。次の例では、変数 $message と $phone を使用します。$message 変数は ${1} オプションの --message として渡され、$phone 変数は ${2} オプションの --phone-number として渡されます。これにより、textalert エイリアスを正常に呼び出してメッセージを送信できます。
$aws textalert $message $phone{ "MessageId": "1ab2cd3e4-fg56-7h89-i01j-2klmn34567" }
次の例では、エイリアスを $phone および $message に呼び出すときに順序が切り替わります。$phone 変数は ${1} オプションの --message として渡され、$message 変数は ${2} オプションの --phone-number として渡されます。変数の順序が間違っているため、エイリアスは変数を間違って渡します。$message の内容が --phone-number オプションの電話番号の書式要件と一致しないため、これはエラーを引き起こします。
$aws textalert $phone $messageusage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters] To see help text, you can run: aws help aws <command> help aws <command> <subcommand> help Unknown options: text
エイリアスリポジトリの例
GitHub の AWS CLI alias repositoryalias ファイルサンプル全体を使用することも、個々のエイリアスを使うこともできます。
警告
このセクションのコマンドを実行すると、既存の alias ファイルが削除されます。既存のエイリアスファイルが上書きされないようにするには、ダウンロード先の場所を変更します。
リポジトリのエイリアスを使用するには
-
Git をインストールします。インストール手順については、Git の Documentation の Getting Started - Installing Git
をご参照ください。 -
jpコマンドをインストールします。jpコマンドは、tostringエイリアスで使用されます。インストール手順については、GitHub の JMESPath (jp) README.mdをご参照ください。 -
jqコマンドをインストールします。jqコマンドは、tostring-with-jqエイリアスで使用されます。インストール手順については、GitHub の JSON processor (jq)をご参照ください。 -
次のいずれかの操作を行って、
aliasファイルをダウンロードします。-
次のコマンドを実行して、
aliasファイルをリポジトリからダウンロードし、設定フォルダにコピーします。 -
リポジトリから直接ダウンロードして、AWS CLI 設定フォルダ内の
cliフォルダに保存します。デフォルトでは、構成フォルダは Linux または macOS では「~/.aws/」、Windows 上は「%USERPROFILE%\.aws\」にあります。
-
-
エイリアスが機能していることを確認するには、次のエイリアスを実行します。
$aws whoamiaws sts get-caller-identityコマンドと同じ応答が表示されます。{ "Account": "012345678901", "UserId": "AIUAINBADX2VEG2TC6HD6", "Arn": "arn:aws:iam::012345678901:user/myuser" }
リソース
-
GitHub の AWS CLI alias repository
には、AWS CLI デベロッパーチームによって作成された AWS CLI エイリアスの例と、AWS CLI コミュニティのコントリビューションが含まれています。 -
YouTube の AWS re:Invent 2016: The Effective AWS CLI User
からのエイリアス機能の発表。