命令行选项 - AWS Command Line Interface

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

命令行选项

在中 AWS CLI,命令行选项是全局参数,可用于覆盖该单个命令的默认配置设置、任何相应的配置文件设置或环境变量设置。虽然您可以指定要使用的配置文件,但无法使用命令行选项直接指定凭证。

如何使用命令行选项

大多数命令行选项都是简单的字符串,例如,以下示例中的配置文件名 profile1

$ aws s3 ls --profile profile1 example-bucket-1 example-bucket-2 ...

每个带参数的选项都需要一个空格或等号 (=) 将参数与选项名称分开。如果参数值为包含空格的字符串,则必须使用引号将参数引起来。有关参数类型和参数格式的详细信息,请参阅 为指定参数值 AWS CLI

AWS CLI 支持的全局命令行选项

在中, AWS CLI 您可以使用以下命令行选项来覆盖该单个命令的默认配置设置、任何相应的配置文件设置或环境变量设置。

--ca-bundle <string>

指定验证证书时要使用的证书颁发机构 (CA) SSL 证书包。

如果已定义,此选项将覆盖配置文件设置 ca_bundleAWS_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 输出- 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://前缀表示法在文件中引用二进制值,则会根据当前cli_binary_format设置 AWS CLI 处理该文件。如果该设置的值为base64(未明确设置时的默认值),则 AWS CLI 期望文件包含 base64 编码的文本。如果该设置的值为 raw-in-base64-out, AWS CLI 希望文件中包含原始二进制内容。

--cli-connect-timeout <integer>

指定最大套接字连接时间(以秒为单位)。如果该值设置为零 (0),则套接字连接将无限等待(阻塞),不会超时。

--cli-read-timeout <integer>

指定最大套接字读取时间(以秒为单位)。如果该值设置为零 (0),则套接字读取将无限等待(阻塞),不会超时。

--颜色 <string>

指定对彩色输出的支持。有效值包括 onoffauto。原设定值为 auto

--debug

启用调试日志记录的布尔开关。 AWS CLI 默认情况下,在命令输出中提供有关命令结果的任何成功或失败的清理信息。--debug 选项提供完整的 Python 日志。这包括有关命令操作的额外 stderr 诊断信息,这些信息在排查命令提供意外结果的原因时非常有用。为了轻松查看调试日志,我们建议将日志发送到文件,这样可以更轻松地搜索信息。您可以使用以下方法之一实现这一点。

发送 stderr 诊断信息,请附加 2> debug.txt,其中 debug.txt 是您要用于调试文件的名称:

$ aws servicename commandname options --debug 2> debug.txt

同时发送输出信息和 stderr 诊断信息,请附加 &> debug.txt,其中 debug.txt 是您要用于调试文件的名称:

$ aws servicename commandname options --debug &> debug.txt
--端点网址 <string>

指定要URL向其发送请求的。对于大多数命令, AWS CLI 会URL根据所选服务和指定 AWS 区域自动确定。但是,有些命令要求您指定特定于账户URL的命令。您也可以将某些 AWS 服务配置为直接在您的私有服务器中托管终端节点 VPC,然后可能需要对其进行指定。

以下命令示例使用自定义 Amazon S3 终端节点URL。

$ aws s3 ls --endpoint-url http://localhost:4567

端点配置设置位于多个位置,例如系统或用户环境变量、本地 AWS 配置文件或在命令行中明确声明为参数。 AWS CLI 端点配置设置的优先顺序如下:

  1. --endpoint-url 命令行选项。

  2. 如果启用,则 AWS_IGNORE_CONFIGURED_ENDPOINT_URLS 全局端点环境变量或配置文件设置 ignore_configure_endpoint_urls 将忽略自定义端点。

  3. 由特定于服务的环境变量 AWS_ENDPOINT_URL_<SERVICE> 提供的值,例如 AWS_ENDPOINT_URL_DYNAMODB

  4. AWS_USE_DUALSTACK_ENDPOINTAWS_USE_FIPS_ENDPOINTAWS_ENDPOINT_URL 环境变量提供的值。

  5. 共享 config 文件 services 节中的 endpoint_url 设置提供的特定于服务的端点值。

  6. 共享 config 文件的 profile 中的 endpoint_url 设置提供的值。

  7. use_dualstack_endpointuse_fips_endpointendpoint_url 设置。

  8. 最后使用相应URL AWS 服务 端点的任何默认端点。有关每个区域可用的标准服务端点的列表,请参阅《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 服务通信SSL时 AWS CLI 使用。对于每个SSL连接和调用,都会 AWS CLI 验证SSL证书。使用此选项会覆盖验证SSL证书的默认行为。

警告

此选项不是 最佳做法。如果您使用--no-verify-ssl,则您的客户端和 AWS 服务之间的流量将不再受到保护。这意味着您的流量存在安全风险,容易受到攻 man-in-the-middle 击。如果您遇到证书问题,最好解决这些问题。有关证书故障排除步骤,请参阅 SSL证书错误

--output <string>

指定用于该命令的输出格式。您可以指定以下任意值:

  • json— 输出格式化为字符JSON串。

  • yaml— 输出格式化为字符YAML串。

  • yaml-stream— 输出被流式传输并格式化为YAML字符串。串流支持更快地处理大型数据类型。

  • text – 输出采用多个制表符分隔字符串值行的格式。这对于将输出传递到文本处理器(如 grepsedawk)很有用。

  • table – 输出采用表格形式,使用字符 +|- 以形成单元格边框。它通常以“人性化”格式呈现信息,这种格式比其他格式更容易阅读,但从编程方面来讲不是那么有用。

--profile <string>

指定用于该命令的命名配置文件。要设置其他命名配置文件,可以在 aws configure 命令中使用 --profile 选项。

$ aws configure --profile <profilename>
--查询 <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 ||| ...