

# 在 Amazon CLI 中控制命令输出
<a name="cli-usage-output"></a>

本部分介绍控制 Amazon Command Line Interface (Amazon CLI) 的输出的不同方式。在终端中自定义 Amazon CLI 输出可以提高可读性，简化脚本自动化，并为浏览大型数据集提供便利。

Amazon CLI 支持多种[输出格式](cli-usage-output-format.md)，包括 [`json`](cli-usage-output-format.md#json-output)、[`text`](cli-usage-output-format.md#text-output)、[`yaml`](cli-usage-output-format.md#yaml-output)、[`off`](cli-usage-output-format.md#off-output) 和 [`table`](cli-usage-output-format.md#table-output)。有些服务在服务器端对数据进行了[分页](cli-usage-pagination.md)，而 Amazon CLI 则在自己的客户端提供了额外的分页选项。

最后，Amazon CLI 具有[服务器端和客户端筛选功能](cli-usage-filter.md)，您可以单独使用一个功能或同时使用这两个功能来筛选 Amazon CLI 输出。

**Topics**
+ [敏感输出](#cli-usage-output-sensitive)
+ [服务器端与客户端输出选项](#cli-usage-output-server-client)
+ [在 Amazon CLI 中设置输出格式](cli-usage-output-format.md)
+ [Amazon CLI 中的结构化错误输出](cli-usage-error-format.md)
+ [在 Amazon CLI 中使用分页选项](cli-usage-pagination.md)
+ [在 Amazon CLI 中筛选输出](cli-usage-filter.md)

## 敏感输出
<a name="cli-usage-output-sensitive"></a>

Amazon CLI 中的某些操作可能会返回可能被视为敏感内容的信息，包括来自环境变量的信息。在某些情况下，泄露这些信息可能构成安全风险；例如，这些信息可能包含在持续集成和持续部署（CI/CD）日志中。因此，请务必核查何时将此类输出作为日志的一部分，并在不需要时隐藏该输出。

有关保护敏感数据的其他信息，请参阅[Amazon CLI 中的数据保护](data-protection.md)。

考虑下面的最佳实践：
+ 请考虑以编程方式从密钥存储库（如 Amazon Secrets Manager）中检索您的密钥。
+ 查看构建日志的内容，确保其中不包含敏感信息。考虑使用诸如 `/dev/null` 管道传输或将输出捕获为 bash 或 PowerShell 变量之类的方法，来抑制命令输出。

  以下是将输出（而不是错误）重定向到 `/dev/null` 的 bash 示例：

  ```
  $ aws s3 ls > /dev/null
  ```

  有关抑制终端输出的详细信息，请参阅所用终端的用户文档。
+ 考虑日志的访问权限，并根据您的使用案例适当确定访问范围。

## 服务器端与客户端输出选项
<a name="cli-usage-output-server-client"></a>

Amazon CLI 具有[服务器端和客户端筛选功能](cli-usage-filter.md)，您可以单独使用或结合使用这两项功能来筛选 Amazon CLI 输出。首先处理服务器端筛选，然后返回输出以进行客户端筛选。服务器端筛选由服务 API 提供支持。客户端筛选使用 `--query` 参数由 Amazon CLI 客户端提供支持。

**服务器端**输出选项是 Amazon Web Services 服务 API 直接支持的功能。任何经过筛选或分页的数据都不会发送到客户端，这可以缩短 HTTP 响应时间，并为较大的数据集提高带宽。

**客户端**输出选项是由 Amazon CLI 创建的功能。所有数据都发送到客户端，然后 Amazon CLI 会对显示的内容进行筛选或分页。对于较大的数据集，客户端操作不会加快速度或节省带宽。

当服务器端和客户端选项同时使用时，服务器端操作会首先完成，然后发送到客户端进行客户端操作。这利用了服务器端选项可以加快速度和节省带宽的特点，同时使用其他 Amazon CLI 功能来获得所需的输出。