本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在中创建和使用别名 AWS CLI
别名是您可以在 AWS Command Line Interface (AWS CLI) 中创建的快捷方式,用于缩短经常使用的命令或脚本。您可以在配置文件夹中的 alias
文件中创建别名。
先决条件
要使用别名命令,您需要完成以下操作:
安装和配置 AWS CLI。有关更多信息,请参阅安装或更新到最新版本的 AWS CLI 和的身份验证和访问凭证 AWS CLI。
-
使用最低 AWS CLI 版本 1.11.24 或 2.0.0。
-
(可选)要使用 AWS CLI 别名 bash 脚本,必须使用与 bash 兼容的终端。
步骤 1:创建别名文件
要创建alias
文件,您可以使用文件导航和文本编辑器,也可以通过 step-by-step以下过程使用首选终端。要快速创建别名文件,请使用以下命令块。
创建别名文件
-
cli
在您的 AWS CLI 配置文件夹中创建一个名为的文件夹。默认情况下,配置文件夹为~/.aws/
(Linux 或 macOS)和%USERPROFILE%\.aws\
(Windows)。您可以通过文件导航或使用以下命令进行创建。生成的
cli
文件夹默认路径为~/.aws/cli/
(Linux 或 macOS)和%USERPROFILE%\.aws\cli
(Windows)。 -
在
cli
文件夹中,创建不带扩展名的名为alias
的文本文件,然后将[toplevel]
添加到第一行。您可以通过首选的文本编辑器或使用以下命令创建此文件。
步骤 2:创建别名
您可以使用基本命令或 bash 脚本创建别名。
创建基本命令别名
您可以在上一步中创建的 alias
文件中使用以下语法来添加命令,从而来创建别名。
语法
[
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 --query
Account
--output text
创建子命令别名
注意
子命令别名功能要求的最低 AWS CLI 版本为 1.11.24 或 2.0.0
您可以在上一步中创建的 alias
文件中使用以下语法来添加命令,从而为子命令创建别名。
语法
[command
commandGroup
][
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
注意
别名仅使用现有命令命名空间,您不能创建新的命名空间。例如,您无法使用 [command johnsmith]
部分创建别名,因为 johnsmith
命令命名空间尚不存在。
创建 bash 脚本别名
警告
要使用 AWS CLI 别名 bash 脚本,必须使用与 bash 兼容的终端
您可以使用以下语法为更高级的流程使用 bash 脚本创建别名。
语法
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
别名来授权您的 IP 地址进入 Amazon EC2 安全组。
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
选项是第二个。
textalert = !f() { aws sns publish --message "${1}" --phone-number ${2} }; f
步骤 3:调用别名
要运行在 alias
文件中创建的别名,请使用以下语法。您可以在调用别名时添加其他选项。
语法
$
aws
aliasname
以下示例使用 aws whoami
命令别名。
$
aws whoami
{ "UserId": "A12BCD34E5FGHI6JKLM", "Account": "1234567890987", "Arn": "arn:aws:iam::1234567890987:user/userName" }
以下示例使用了带有其他选项的 aws whoami
别名,仅返回 Account
输出中的 text
数字。
$
aws whoami --query Account --output text
1234567890987
以下示例使用 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
是第二个。
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 $message
usage: 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
别名存储库示例
上的AWS CLI 别名存储库GitHubalias
文件示例,也可以自己使用单个别名。
警告
运行本节中的命令会删除现有 alias
文件。为避免覆盖现有别名文件,请更改下载位置。
使用存储库中的别名
-
安装 Git。有关安装说明,请参阅 Git 文档中的入门 - 安装 Git
。 -
安装
jp
命令。jp
命令是在tostring
别名中使用的。有关安装说明,请参阅上GitHub的 JMESPath(jp) README .md。 -
安装
jq
命令。jq
命令是在tostring-with-jq
别名中使用的。有关安装说明,请参阅上的JSON处理器 (jq)。GitHub -
通过执行以下操作之一下载
alias
文件:-
运行以下命令,它是从存储库下载的并将
alias
文件复制到配置文件夹。 -
直接从存储库下载并保存到 AWS CLI 配置
cli
文件夹中的文件夹。默认情况下,配置文件夹为~/.aws/
(Linux 或 macOS)和%USERPROFILE%\.aws\
(Windows)。
-
-
要验证别名是否有效,请运行以下别名。
$
aws whoami
这将显示与
aws sts get-caller-identity
命令相同的响应:{ "Account": "012345678901", "UserId": "AIUAINBADX2VEG2TC6HD6", "Arn": "arn:aws:iam::012345678901:user/myuser" }
资源
-
上的AWS CLI 别名存储库GitHub
包含 AWS CLI 开发团队创建的 AWS CLI 别名示例和 AWS CLI 社区的贡献。 -
来自 re AWS : Invent 2016:The Effective User 的
别名功能公告。 AWS CLI YouTube