

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 中的分頁選項 AWS CLI
<a name="cli-usage-pagination"></a>

本主題說明從 AWS Command Line Interface () 分頁輸出的不同方式AWS CLI。

主要有兩種方法來控制 AWS CLI輸出的分頁。
+ [使用伺服器端的分頁參數。](#cli-usage-pagination-serverside)
+ [使用您的預設輸出用戶端分頁程式](#cli-usage-pagination-clientside)。

伺服器端分頁參數先處理，然後所有輸出都傳送到用戶端分頁。

## 伺服器端分頁
<a name="cli-usage-pagination-serverside"></a>

對於傳回大量項目清單的大多數命令， AWS CLI 具有多個伺服器端選項，可在 AWS CLI 呼叫服務的 API 填入清單時控制輸出中包含的項目數量。中的伺服器端分頁由 AWS 服務 API AWS CLI 啟用，因此這些選項只有在服務 API 啟用時才有效。

**Topics**
+ [--no-paginate](#cli-usage-pagination-nopaginate)
+ [--page-size](#cli-usage-pagination-pagesize)
+ [--max-items](#cli-usage-pagination-maxitems)
+ [--starting-token](#cli-usage-pagination-startingtoken)

根據預設， AWS CLI 會使用由個別服務決定的頁面大小，並擷取所有可用的項目。例如，Amazon S3 的預設頁面大小為 1000。例如，如果您在包含 3,500 個物件的 Amazon S3 儲存貯體上執行 `aws s3api list-objects`， AWS CLI 會自動對 Amazon S3 進行 4 次呼叫、在背景為您處理服務特定的分頁邏輯，並在最終輸出中傳回全部 3,500 個物件。

如需有關特定命令是否具有伺服器端分頁的資訊，請參閱第 [AWS CLI 2 版參考指南](https://docs.aws.amazon.com/cli/latest/reference/index.html)。

### 如何使用 --no-paginate 參數
<a name="cli-usage-pagination-nopaginate"></a>

`--no-paginate` 選項在客户端停用以下分頁標記。使用命令時， 預設 AWS CLI 會自動進行多次呼叫，以傳回所有可能的結果來建立分頁。每個頁面一個呼叫。停用分頁對於命令結果的第一頁 AWS CLI 只有一次呼叫。

例如，如果您在包含 3，500 個物件的 Amazon S3 儲存貯體`aws s3api list-objects`上執行 ，則 AWS CLI 只會對 Amazon S3 進行第一次呼叫，並在最終輸出中僅傳回前 1，000 個物件。

```
$ aws s3api list-objects \
    --bucket amzn-s3-demo-bucket \
    --no-paginate
{
    "Contents": [
...
```

### 如何使用 --page-size 參數
<a name="cli-usage-pagination-pagesize"></a>

如果您在針對大量資源執行清單命令時發生問題，可能是預設頁面大小太高。這可能會導致對 AWS 服務的呼叫超過允許的時間上限，並產生「逾時」錯誤。您可以使用 `--page-size`選項來指定從每次呼叫服務 AWS CLI 請求較少數量的項目 AWS 。 AWS CLI 仍會擷取完整清單，但在背景執行更多數量的服務 API 呼叫，並在每次呼叫時擷取較少數量的項目。這可讓每次呼叫不逾時的成功機會更高。變更頁面大小不會影響輸出；它只會影響產生輸出所需進行的 API 呼叫數量。

```
$ aws s3api list-objects \
    --bucket amzn-s3-demo-bucket \
    --page-size 100
{
    "Contents": [
...
```

### 如何使用 --max-items 參數
<a name="cli-usage-pagination-maxitems"></a>

若要一次在 AWS CLI 輸出中包含較少的項目，請使用 `--max-items`選項。 AWS CLI 仍會如先前所述使用 服務處理分頁，但一次只會列印您指定的項目數量。

```
$ aws s3api list-objects \
    --bucket amzn-s3-demo-bucket \
    --max-items 100
{
    "NextToken": "eyJNYXJrZXIiOiBudWxsLCAiYm90b190cnVuY2F0ZV9hbW91bnQiOiAxfQ==",
    "Contents": [
...
```

### 如何使用 --starting-token 參數
<a name="cli-usage-pagination-startingtoken"></a>

如果項目輸出數量 (`--max-items`) 少於基礎 API 呼叫傳回的項目總數，則輸出會包含一個 `NextToken`，提供您在後續命令中傳送以擷取下一組項目。以下範例說明如何使用前一範例傳回的 `NextToken` 值，並讓您擷取第二批的 100 個項目。

**注意**  
參數 `--starting-token` 不能為 null 或空白。如果先前的命令未傳回 `NextToken` 值，表示已沒有更多項目可傳回，您也不需要再次呼叫命令。

```
$ aws s3api list-objects \
    --bucket amzn-s3-demo-bucket \
    --max-items 100 \
    --starting-token eyJNYXJrZXIiOiBudWxsLCAiYm90b190cnVuY2F0ZV9hbW91bnQiOiAxfQ==
{
    "Contents": [
...
```

每次呼叫 時，指定的 AWS 服務可能不會以相同的順序傳回項目。如果您為 `--page-size` 和 `--max-items` 指定不同的數值，您可能會取得意外的結果，並發生遺漏或重複的項目。欲避免此情況，請對 `--page-size` 和 `--max-items` 使用相同數字，以同步 AWS CLI 和基礎服務的分頁。您亦可擷取整個清單，並於本機執行所需的分頁操作。

## 用戶端分頁程式
<a name="cli-usage-pagination-clientside"></a>

AWS CLI 第 2 版提供使用用戶端分頁程式進行輸出。根據預設，此功能會透過作業系統的預設分頁程式傳回所有輸出。

依據優先順序，您可以使用以下方式指定輸出分頁程式：
+ 使用 `default` 或具名設定檔內 `config` 檔案中的 `cli_pager` 設定。
+ 使用 `AWS_PAGER` 環境變數。
+ 使用 `PAGER` 環境變數。

依優先順序，您可以透過下列方式停用所有對外部分頁程式的使用：
+ 使用 `--no-cli-pager` 命令列選項停用單一命令使用的分頁程式。
+ 將 `cli_pager` 設定或 `AWS_PAGER` 變數設為空白字串。

**Topics**
+ [cli\$1pager](#cli-usage-pagination-clipager)
+ [AWS\$1PAGER](#cli-usage-pagination-awspager)
+ [--no-cli-pager](#cli-usage-pagination-noclipager)
+ [分頁程式標記](#cli-usage-pagination-flags)

### 如何使用 cli\$1pager 設定
<a name="cli-usage-pagination-clipager"></a>

您可以將常用的組態設定和憑證儲存在 AWS CLI維護的檔案中。具名設定檔內的設定優先於 `default` 設定檔內的設定。如需組態設定的詳細資訊，請參閱 [中的組態和登入資料檔案設定 AWS CLI](cli-configure-files.md)。

以下範例設定預設的輸出分頁程式至 `less` 程式。

```
[default]
cli_pager=less
```

下列範例會將預設值設定為停用分頁程式。

```
[default]
cli_pager=
```



### 如何設定 AWS\$1PAGER 環境變數
<a name="cli-usage-pagination-awspager"></a>

以下範例設定預設的輸出分頁程式至 `less` 程式。如需有關環境變數的詳細資訊，請參閱 [設定 的環境變數 AWS CLI](cli-configure-envvars.md)。

------
#### [ Linux and macOS ]

```
$ export AWS_PAGER="less"
```

------
#### [ Windows ]

```
C:\> setx AWS_PAGER "less"
```

------

### 如何使用 --no-cli-pager 選項
<a name="cli-usage-pagination-noclipager"></a>

若要停用單一命令對呼叫程式的使用，請使用 `--no-cli-pager` 選項。如需命令列選項的詳細資訊，請參閱 [中的命令列選項 AWS CLI](cli-configure-options.md)。

```
$ aws s3api list-objects \
    --bucket amzn-s3-demo-bucket \
    --no-cli-pager
{
    "Contents": [
...
```

### 如何使用分頁程式標記
<a name="cli-usage-pagination-flags"></a>

您可以指定要自動與分頁程式搭配使用的標記。標記是依您使用的分頁程式而定。以下範例是 `less` 和 `more` 的典型預設內容。

------
#### [ Linux and macOS ]

如果您未另外指定，分頁器第 2 AWS CLI 版預設使用 `less`。如果您沒有設定`LESS`環境變數，第 2 AWS CLI 版會使用 `FRX`旗標。您可以在設定 AWS CLI 分頁器時指定旗標，以結合旗標。

下列範例使用 `S` 標記。然後，此標誌會與預設的 `FRX` 標誌合併，以建立最終 `FRXS` 標記。

```
$ export AWS_PAGER="less -S"
```

如果您不希望有任何 `FRX` 標記，可將其否定。以下範例會否定 `F` 標記以建立最終 `RX` 標記。

```
$ export AWS_PAGER="less -+F"
```

如需 `less` 的詳細資訊，請參閱 *manpages.org* 上的 [less](http://manpages.org/less/1#options)。

------
#### [ Windows ]

如果您未另外指定，分頁器 AWS CLI 版本 2 預設會使用 `more`，沒有額外的旗標。

下列範例會使用 `/c` 參數。

```
C:\> setx AWS_PAGER "more /c"
```

如需 `more` 旗標的詳細資訊，請參閱 *Microsoft Docs* 的 `[more](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/more)`。

------