AWS CLI 中的命令行选项
在 AWS CLI 中,命令行选项是您可用来覆盖该单个命令的默认设置配置设置、任何相应的配置文件设置或环境变量设置的全局参数。虽然您可以指定要使用的配置文件,但无法使用命令行选项直接指定凭证。
如何使用命令行选项
大多数命令行选项都是简单的字符串,例如,以下示例中的配置文件名 profile1
:
$
aws s3 ls --profile
profile1
amzn-s3-demo-bucket1 amzn-s3-demo-bucket2 ...
每个带参数的选项都需要一个空格或等号 (=) 将参数与选项名称分开。如果参数值为包含空格的字符串,则必须使用引号将参数引起来。有关参数类型和参数格式的详细信息,请参阅 在 AWS CLI 中指定参数值。
AWS CLI 支持的全局命令行选项
在 AWS CLI 中,您可以使用以下命令行选项来覆盖该单个命令的原定设置配置设置、任何相应的配置文件设置或环境变量设置。
- --ca-bundle
<string>
-
指定验证 SSL 证书时要使用的证书颁发机构 (CA) 证书捆绑包。
如果已定义,此选项将覆盖配置文件设置
ca_bundle
和AWS_CA_BUNDLE
环境变量的值。 - --cli-auto-prompt
-
为单个命令启用自动提示模式。如以下示例所示,您可以随时指定它。
$
aws --cli-auto-prompt
$
aws dynamodb --cli-auto-prompt
$
aws dynamodb describe-table --cli-auto-prompt
此选项将覆盖
aws_cli_auto_prompt
环境变量和cli_auto_prompt
配置文件设置。有关 AWS CLI 版本 2 自动提示特征的信息,请参阅 在 AWS CLI 中启用和使用命令提示符。
- --cli-binary-format
-
指定 AWS CLI 版本 2 如何解释二进制输入参数。它可能为下列值之一:
-
base64 – 这是默认值。作为二进制大型对象 (BLOB) 键入的输入参数接受 base64 编码字符串。要传递真实的二进制内容,请将内容放在文件中,并提供文件的路径和名称,将
fileb://
前缀作为参数值。要传递文件中包含的 base64 编码文本,请提供文件的路径和名称,并将file://
前缀作为参数值。 -
raw-in-base64-out – AWS CLI 版本 1 的默认值。如果设置的值为
raw-in-base64-out
,则使用file://
前缀引用的文件会作为文本进行读取,然后 AWS CLI 尝试将其编码为二进制。
这将覆盖
cli_binary_format
文件配置设置。$
aws lambda invoke \ --cli-binary-format raw-in-base64-out \ --function-name my-function \ --invocation-type Event \ --payload '{ "name": "Bob" }' \ response.json
如果使用
fileb://
前缀表示法引用文件中的二进制值,AWS CLI 始终 希望文件中包含原始二进制内容,并且不会尝试转换该值。如果使用
file://
前缀表示法引用文件中的二进制值,AWS CLI 会根据当前cli_binary_format
设置来处理此文件。如果该设置的值为base64
(未明确设置时的默认值),AWS CLI 希望该文件中包含 base64 编码文本。如果该设置的值为raw-in-base64-out
,AWS CLI 希望文件中包含原始二进制内容。 -
- --cli-connect-timeout
<integer>
-
指定最大套接字连接时间(以秒为单位)。如果该值设置为零 (0),则套接字连接将无限等待(阻塞),不会超时。
- --cli-read-timeout
<integer>
-
指定最大套接字读取时间(以秒为单位)。如果该值设置为零 (0),则套接字读取将无限等待(阻塞),不会超时。
- --color
<string>
-
指定对彩色输出的支持。有效值包括
on
、off
和auto
。默认值为auto
。 - --debug
-
启用调试日志记录的布尔开关。默认情况下,AWS CLI 提供有关命令输出中命令结果的任何成功或失败的清理信息。
--debug
选项提供完整的 Python 日志。这包括有关命令操作的额外stderr
诊断信息,这些信息在排查命令提供意外结果的原因时非常有用。为了轻松查看调试日志,我们建议将日志发送到文件,这样可以更轻松地搜索信息。您可以使用以下方法之一实现这一点。要仅发送
stderr
诊断信息,请附加2> debug.txt
,其中debug.txt
是您要用于调试文件的名称:$
aws
2>servicename
commandname
options
--debugdebug.txt
要同时发送输出信息和
stderr
诊断信息,请附加&> debug.txt
,其中debug.txt
是您要用于调试文件的名称:$
aws
&>servicename
commandname
options
--debugdebug.txt
- --endpoint-url
<string>
-
指定要将请求发送到的 URL。对于大多数命令,AWS CLI 会根据所选服务和指定的 AWS 区域自动确定 URL。但是,某些命令需要您指定账户专用 URL。您还可以配置一些 AWS 服务直接在您的私有 VPC 中托管端点(然后可能需要指定该端点)。
以下命令示例使用自定义 Amazon S3 端点 URL。
$
aws s3 ls --endpoint-url
http://localhost:4567
端点配置设置位于多个位置(例如,系统变量或用户环境变量、本地 AWS 配置文件),或者在命令行上显式声明为参数。AWS CLI 端点配置设置的优先顺序如下:
-
--endpoint-url
命令行选项。 -
如果启用,则
AWS_IGNORE_CONFIGURED_ENDPOINT_URLS
全局端点环境变量或配置文件设置ignore_configure_endpoint_urls
将忽略自定义端点。 -
由特定于服务的环境变量
AWS_ENDPOINT_URL_<SERVICE>
提供的值,例如AWS_ENDPOINT_URL_DYNAMODB
。 -
AWS_USE_DUALSTACK_ENDPOINT
、AWS_USE_FIPS_ENDPOINT
和AWS_ENDPOINT_URL
环境变量提供的值。 -
共享
config
文件services
节中的endpoint_url
设置提供的特定于服务的端点值。 -
共享
config
文件的profile
中的endpoint_url
设置提供的值。 -
最后使用相应的 AWS 服务的任何默认端点 URL。有关每个区域可用的标准服务端点的列表,请参阅《Amazon Web Services 一般参考》中的 AWS 区域和端点。
-
- --no-cli-auto-prompt
-
禁用单个命令的自动提示模式。
$
aws dynamodb describe-table --table-name Table1 --no-cli-auto-prompt
此选项将覆盖
aws_cli_auto_prompt
环境变量和cli_auto_prompt
配置文件设置。有关 AWS CLI 版本 2 自动提示特征的信息,请参阅 在 AWS CLI 中启用和使用命令提示符。
- --no-cli-pager
-
一个布尔开关,它对命令输出禁用分页程序。
- --no-paginate
-
一个布尔开关,它禁用多次调用,AWS CLI 自动发出这些调用来接收创建输出分页的所有命令结果。这意味着只显示您的输出的第一页。
- --no-sign-request
-
对 AWS 服务端点的 HTTP 请求禁用签名的布尔开关。这可避免加载凭证。
- --no-verify-ssl
-
默认情况下,AWS CLI 在与 AWS 服务通信时使用 SSL。对于每个 SSL 连接和调用,AWS CLI 都会验证 SSL 证书。使用此选项会覆盖验证 SSL 证书的默认行为。
警告
此选项不是 最佳做法。如果您使用
--no-verify-ssl
,则您的客户端和 AWS 服务之间的流量将不再受到保护。这意味着您的流量存在安全风险,容易受到中间人攻击。如果您遇到证书问题,最好解决这些问题。有关证书故障排除步骤,请参阅 SSL 证书错误。 - --output
<string>
-
指定用于该命令的输出格式。您可以指定以下任意值:
- --profile
<string>
-
指定用于该命令的命名配置文件。要设置其他命名配置文件,可以在
aws configure
命令中使用--profile
选项。$
aws configure --profile
<profilename>
- --query
<string>
-
指定用于筛选响应数据的 JMESPath 查询
。有关更多信息,请参阅 在 AWS CLI 中筛选输出。 - --region
<string>
-
指定要将该命令的 AWS 请求发送到的 AWS 区域。有关您可以指定的所有区域的列表,请参阅《Amazon Web Services 一般参考》中的 AWS 区域和端点。
- --version
-
显示正在运行的 AWS CLI 程序的当前版本的布尔开关。
命令行选项的常见用法
常见的命令行选项用法包括在编写脚本时检查多个 AWS 区域中的资源,以及更改输出格式使其易于阅读或使用。在以下示例中,我们对每个区域运行 describe-instances 命令,直到我们找到实例所在的区域。
$
aws ec2 describe-instances --output table --region
us-west-1
------------------- |DescribeInstances| +-----------------+
$aws ec2 describe-instances --output table --region
us-west-2
------------------------------------------------------------------------------ | DescribeInstances | +----------------------------------------------------------------------------+ || Reservations || |+-------------------------------------+------------------------------------+| || OwnerId | 012345678901 || || ReservationId | r-abcdefgh || |+-------------------------------------+------------------------------------+| ||| Instances ||| ||+------------------------+-----------------------------------------------+|| ||| AmiLaunchIndex | 0 ||| ||| Architecture | x86_64 ||| ...