

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

# 設定 AWS CLI 的設定。
<a name="cli-chap-configure"></a>

本節說明如何設定 AWS Command Line Interface (AWS CLI) 用於與 AWS 互動的設定。這些索引標籤包括以下項目：
+ **憑證**會識別呼叫 API 的人員。存取憑證是用來加密 AWS 伺服器的要求，以確認您的身分並擷取相關的權限政策。這些權限會決定您可以執行哪些動作。如需設定憑證的相關資訊，請參閱 [的身分驗證和存取憑證 AWS CLI](cli-chap-authentication.md)。
+ **其他組態詳細資訊**會說明 AWS CLI 處理要求的方式，例如預設輸出格式和預設 AWS 區域。

**注意**  
AWS 要求所有傳入請求都經過加密簽署。AWS CLI會為您妥善處理。「簽章」包含日期/時間戳記。因此，您必須確定電腦的日期和時間設定正確。如果不確定，且簽章中的日期/時間與 AWS 服務所辨識的日期/時間相差太多，AWS 會拒絕請求。

## 組態和憑證優先順序
<a name="configure-precedence"></a>

憑證和組態設定位於多個位置，例如系統或使用者環境變數、本機 AWS 組態檔案，或在命令列上明確宣告為參數。某些位置的優先順序高於其他位置。AWS CLI 憑證和組態設定的優先順序如下：

1. **[命令列選項](cli-configure-options.md)** – 覆寫任何其他位置 (例如 `--region`、`--output` 和 `--profile` 參數) 的設定。

1. **[環境變數](cli-configure-envvars.md)** – 您可以將數值存放在環境變數中。

1. **[擔任角色](cli-configure-role.md)**—透過組態或 [https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role.html](https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role.html) 命令，獲得 IAM 角色許可。

1. **[擔任具有 Web 身分的角色](cli-configure-role.md)**—透過組態或 [https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role-with-web-identity.html](https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role-with-web-identity.html) 命令，使用 Web 身分獲得 IAM 角色許可。

1. **[AWS IAM Identity Center](cli-configure-files.md)** – 存放在 `config` 檔案中的 IAM Identity Center 組態設定會在您執行 `aws configure sso` 命令時更新。之後當您執行 `aws sso login` 命令時，系統會驗證憑證。`config` 檔案在 Linux 或 macOS 上位於 `~/.aws/config`，在 Windows 上位於 `C:\Users\USERNAME\.aws\config`。

1. **[憑證檔案](cli-configure-files.md)** – 當您執行 `aws configure` 命令時，會更新 `credentials` 和 `config` 檔案。`credentials` 檔案在 Linux 或 macOS 上位於 `~/.aws/credentials`，在 Windows 上位於 `C:\Users\USERNAME\.aws\credentials`。

1. **[自訂程序](cli-configure-sourcing-external.md)**—從外部來源取得憑證。

1. **[組態檔](cli-configure-files.md)** – 當您執行 `aws configure` 命令時，會更新 `credentials` 和 `config` 檔案。`config` 檔案在 Linux 或 macOS 上位於 `~/.aws/config`，在 Windows 上位於 `C:\Users\USERNAME\.aws\config`。

1. **[容器憑證](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html)** – 您可以將 IAM 角色與您的每一個 Amazon Elastic Container Service (Amazon ECS) 任務定義關聯起來。然後，該角色的臨時憑證就可供該任務的容器使用。如需詳細資訊，請參閱《Amazon Elastic Container Service 開發人員指南》**中的[任務 IAM 角色](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html)。

1. **[Amazon EC2 執行個體設定檔憑證](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html)** – 您可以將 IAM 角色與您的每一個 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體關聯起來。然後，該角色的臨時憑證就可供執行個體中執行的程式碼使用。憑證是透過 Amazon EC2 中繼資料服務傳遞。如需詳細資料，請參閱《Amazon EC2 使用者指南》**中的 [Amazon EC2 IAM 角色](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html)，以及《IAM 使用者指南》**中的[使用執行個體設定檔](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html)。

## 本區段的其他主題
<a name="configure-topics"></a>
+ [中的組態和登入資料檔案設定 AWS CLI](cli-configure-files.md)
+ [設定 的環境變數 AWS CLI](cli-configure-envvars.md)
+ [中的命令列選項 AWS CLI](cli-configure-options.md)
+ [在 中設定命令完成 AWS CLI](cli-configure-completion.md)
+ [AWS CLI 中的重試次數 AWS CLI](cli-configure-retries.md)
+ [將 HTTP 代理用於 AWS CLI](cli-configure-proxy.md)

# 中的組態和登入資料檔案設定 AWS CLI
<a name="cli-configure-files"></a>

您可以將常用的組態設定和憑證儲存在 AWS CLI維護的檔案中。

這些文件被分為 `profiles`。根據預設， AWS CLI 會使用在名為 的設定檔中找到的設定`default`。若要使用替代設定，您可以建立和參考額外的描述檔。

您可以設定其中一個支援的環境變數，或使用命令列參數，以覆寫個別設定。如需組態設定優先順序的詳細資訊，請參閱 [設定 AWS CLI 的設定。](cli-chap-configure.md)。

**注意**  
如需設定憑證的相關資訊，請參閱 [的身分驗證和存取憑證 AWS CLI](cli-chap-authentication.md)。

**Topics**
+ [組態和憑證檔案的格式](#cli-configure-files-format)
+ [組態設定存放在何處？](#cli-configure-files-where)
+ [使用命名設定檔](#cli-configure-files-using-profiles)
+ [使用命令設定和檢視組態設定](#cli-configure-files-methods)
+ [設定新的組態和憑證命令範例](#cli-configure-files-examples)
+ [支援的 `config` 檔案設定](#cli-configure-files-settings)

## 組態和憑證檔案的格式
<a name="cli-configure-files-format"></a>

`config` 和 `credentials` 檔案會組織成區段。區段包括*設定檔*、*SSO 工作階段*和*服務*。區段是具名的設定集合，且會持續到發生其他區段定義列為止。許多設定檔和區段可以儲存於 `config` 和 `credentials` 檔案。

這些檔案是使用下列格式的純文字檔案：
+ 區段名稱會以方括號 [] 括起來，例如 `[default]`、`[profile user1]` 和 `[sso-session]`。
+ 區段中的所有項目均採用 `setting_name=value` 的一般形式。
+ 您可以在列的開頭使用雜湊字元 (`#`)，為列加上註解。

**`config` 和 `credentials` 檔案包含下列區段類型：**
+ [`profile`](#cli-configure-files-format-profile)
+ [`sso-session`](#cli-configure-files-format-sso-session)
+ [`services`](#cli-configure-files-format-services)

### 區段類型：`profile`
<a name="cli-configure-files-format-profile"></a>

根據檔案，設定檔區段名稱會使用下列格式：
+ **組態檔案：** `[default]` `[profile user1]`
+ **憑證檔案：** `[default]` `[user1]`

  在 `credentials` 檔案中建立項目時，請***勿***使用 `profile` 一字。

每個描述檔可以指定不同的憑證，也可以指定不同的 AWS 區域和輸出格式。為 `config` 檔案中的設定檔命名時，請包含前綴詞「`profile`」，但不要將其包含在 `credentials` 檔案中。

下列範例顯示 `credentials` 和 `config` 檔案，兩者皆具有兩個設定檔、區域和指定輸出。當您執行不含指定設定檔的 AWS CLI 命令時會使用第一個 *[預設]*。當您使用 `--profile user1` 參數執行 AWS CLI 命令時，會使用第二個。

------
#### [ IAM Identity Center (SSO) ]

此範例適用於 AWS IAM Identity Center。如需詳細資訊，請參閱[使用 設定 IAM Identity Center 身分驗證 AWS CLI](cli-configure-sso.md)。

**憑證檔案**

此驗證方法不會使用 `credentials` 檔案。

**組態檔案**

```
[default]
sso_session = my-sso
sso_account_id = 111122223333
sso_role_name = readOnly
region = us-west-2
output = text

[profile user1]
sso_session = my-sso
sso_account_id = 444455556666
sso_role_name = readOnly
region = us-east-1
output = json

[sso-session my-sso]
sso_region = us-east-1
sso_start_url = https://my-sso-portal.awsapps.com/start
sso_registration_scopes = sso:account:access
```

------
#### [ IAM Identity Center (Legacy SSO) ]

此範例適用於 的舊版方法 AWS IAM Identity Center。如需詳細資訊，請參閱[使用 設定 IAM Identity Center 身分驗證 AWS CLI](cli-configure-sso.md)。

**憑證檔案**

此驗證方法不會使用 `credentials` 檔案。

**組態檔案**

```
[default]
sso_start_url = https://my-sso-portal.awsapps.com/start
sso_region = us-east-1
sso_account_id = 111122223333
sso_role_name = readOnly
region = us-west-2
output = text

[profile user1]
sso_start_url = https://my-sso-portal.awsapps.com/start
sso_region = us-east-1
sso_account_id = 444455556666
sso_role_name = readOnly
region = us-east-1
output = json
```

------
#### [ Short-term credentials ]

此範例適用於來自 AWS Identity and Access Management的短期憑證。如需詳細資訊，請參閱[使用 的短期登入資料進行驗證 AWS CLI](cli-authentication-short-term.md)。

**憑證檔案**

```
[default]
aws_access_key_id=ASIAIOSFODNN7EXAMPLE
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
aws_session_token = IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE

[user1]
aws_access_key_id=ASIAI44QH8DHBEXAMPLE
aws_secret_access_key=je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY
aws_session_token = fcZib3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE
```

**組態檔案**

```
[default]
region=us-west-2
output=json

[profile user1]
region=us-east-1
output=text
```

------
#### [ IAM role ]

此範例適用於 IAM 角色之擔任。使用 IAM 角色的設定檔會從其他設定檔提取憑證，接著套用 IAM 角色許可。在下列範例中，`default` 是憑證的來源設定檔，且 `user1` 借用相同憑證來擔任新角色。如需詳細資訊，請參閱[在 中使用 IAM 角色 AWS CLI](cli-configure-role.md)。

**憑證檔案**

`credentials` 檔案取決於您的來源設定檔使用哪種身分驗證。在下列範例中，來源設定檔是使用短期憑證。

```
[default]
aws_access_key_id=ASIAIOSFODNN7EXAMPLE
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
aws_session_token = IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE
```

**組態檔案**

```
[default]
region=us-west-2
output=json

[profile user1]
role_arn=arn:aws:iam::777788889999:role/user1role
source_profile=default
role_session_name=session_user1
region=us-east-1
output=text
```

------
#### [ Amazon EC2 instance metadata credentials ]

此範例適用從託管 Amazon EC2 執行個體中繼資料取得的憑證。如需詳細資訊，請參閱[在 中使用 Amazon EC2 執行個體中繼資料做為登入資料 AWS CLI](cli-configure-metadata.md)。

**憑證檔案**

此驗證方法不會使用 `credentials` 檔案。

**組態檔案**

```
[default]
role_arn=arn:aws:iam::123456789012:role/defaultrole
credential_source=Ec2InstanceMetadata
region=us-west-2
output=json

[profile user1]
role_arn=arn:aws:iam::777788889999:role/user1role
credential_source=Ec2InstanceMetadata
region=us-east-1
output=text
```

------
#### [ Long-term credentials ]

**警告**  
為避免安全風險，在開發專用軟體或使用真實資料時，請勿使用 IAM 使用者進行身分驗證。相反地，搭配使用聯合功能和身分提供者，例如 [AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)。

此範例適用於來自 AWS Identity and Access Management的長期憑證。如需詳細資訊，請參閱[使用 的 IAM 使用者登入資料進行驗證 AWS CLI](cli-authentication-user.md)。

**憑證檔案**

```
[default]
aws_access_key_id=AKIAIOSFODNN7EXAMPLE
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

[user1]
aws_access_key_id=AKIAI44QH8DHBEXAMPLE
aws_secret_access_key=je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY
```

**組態檔案**

```
[default]
region=us-west-2
output=json

[profile user1]
region=us-east-1
output=text
```

------

如需詳細資訊以及其他驗證和憑證方式，請參閱 [使用 的 IAM 使用者登入資料進行驗證 AWS CLI](cli-authentication-user.md)。

### 區段類型：`sso-session`
<a name="cli-configure-files-format-sso-session"></a>

`config` 檔案的 `sso-session`區段用於分組用於取得 SSO 存取權杖的組態變數，然後可用於取得 AWS 登入資料。使用下列的設定：
+ **(必要)** `sso\$1start\$1url`
+ **(必要)** `sso\$1region`
+ `sso\$1account\$1id`
+ `sso\$1role\$1name`
+ `sso\$1registration\$1scopes`

定義 `sso-session` 區段並將其與設定檔相關聯。`sso_region` 和 `sso_start_url` 必須在 `sso-session` 區段內設定。一般而言，`sso_account_id` 和 `sso_role_name` 必須在 `profile` 區段中設定，以讓開發套件請求 SSO 憑證。

下列範例會將開發套件設定為請求 SSO憑認證，並支援自動字符重新整理：

```
[profile dev]
sso_session = my-sso
sso_account_id = 111122223333
sso_role_name = SampleRole

[sso-session my-sso]
sso_region = us-east-1
sso_start_url = https://my-sso-portal.awsapps.com/start
```

這也讓 `sso-session` 組態能在多個設定檔中重複使用：

```
[profile dev]
sso_session = my-sso
sso_account_id = 111122223333
sso_role_name = SampleRole

[profile prod]
sso_session = my-sso
sso_account_id = 111122223333
sso_role_name = SampleRole2

[sso-session my-sso]
sso_region = us-east-1
sso_start_url = https://my-sso-portal.awsapps.com/start
```

然而，SSO 字符組態並非所有情況都需要 `sso_account_id` 和 `sso_role_name`。如果您的應用程式只使用支援承載身分驗證的 AWS 服務，則不需要傳統的 AWS 憑證。承載身分驗證是一種 HTTP 身分驗證結構描述，使用稱為承載字符的安全字符。在這種情況下，`sso_account_id` 和 `sso_role_name` 並非必要資訊。請參閱您 AWS 服務的個別指南，以判斷其是否支援承載字符授權。

此外，註冊範圍也可以設定為 `sso-session` 的一部分。範圍是 OAuth 2.0 中的一種機制，用於限制應用程式對使用者帳戶的存取。應用程式可以請求一個或多個範圍，則合法給應用程式的存取字符將僅限於授予的範圍。這些範圍定義為已註冊 OIDC 用戶端和用戶端擷取的存取字符進行授權所需請求的許可。下列範例設定 `sso_registration_scopes` 以提供列出帳戶/角色的存取權限：

```
[sso-session my-sso]
sso_region = us-east-1
sso_start_url = https://my-sso-portal.awsapps.com/start
sso_registration_scopes = sso:account:access
```

身分驗證字符會以基於工作階段名稱的檔案名稱快取至 `~/.aws/sso/cache` 目錄下的磁碟。

如需有關組態類型的詳細資訊，請參閱 [使用 設定 IAM Identity Center 身分驗證 AWS CLI](cli-configure-sso.md)。

### 區段類型：`services`
<a name="cli-configure-files-format-services"></a>

`services` 區段是一組設定，可設定 AWS 服務 請求的自訂端點。然後，設定檔會連結至 `services` 區段。

```
[profile dev]
services = my-services
```

該 `services` 區段由 `<SERVICE> = ` 列分隔成子區段，其中 `<SERVICE>` 是 AWS 服務 識別碼金鑰。 AWS 服務 識別符是以 API 模型的 為基礎`serviceId`，方法是將所有空格取代為底線，並縮小所有字母大小寫。如需要在 `services` 區段中使用的所有服務識別碼金鑰的清單，請參閱 [在 中使用端點 AWS CLI](cli-configure-endpoints.md)。服務識別碼金鑰後面接續巢狀化設定，每個設定獨佔一列並縮排兩個空格。

以下範例將端點設定為用於向 *dev* 設定檔中使用的 *my-services* 區段中的 Amazon DynamoDB 服務發出的請求。任何緊接著縮排的列都包含在該子區段中，並適用於該服務。

```
[profile dev]
services = my-services

[services my-services]
dynamodb = 
  endpoint_url = http://localhost:8000
```

如需服務特定端點詳細資訊，請參閱 [在 中使用端點 AWS CLI](cli-configure-endpoints.md)。

如果您的設定檔具有透過 `source_profile` 參數設定用於 IAM 假設角色功能，以角色為基礎的憑證，則 SDK 只會使用指定設定檔的服務組態。它不會使用與其連結的角色的設定檔。例如，使用下列共用 `config` 檔案：

```
[profile A]
credential_source = Ec2InstanceMetadata
endpoint_url = https://profile-a-endpoint.aws/

[profile B]
source_profile = A
role_arn = arn:aws:iam::123456789012:role/roleB
services = profileB

[services profileB]
ec2 = 
  endpoint_url = https://profile-b-ec2-endpoint.aws
```

 如果您使用設定檔 `B` 並在程式碼中呼叫 Amazon EC2，則端點會解析為 `https://profile-b-ec2-endpoint.aws`。如果您的程式碼向任何其他服務發出要求，端點解析將不會遵循任何自訂邏輯。端點未解析為設定檔 `A` 中定義的全域端點。若要讓全域端點對設定檔 `B` 生效，您需要直接在 `B` 設定檔中設定 `endpoint_url`。

## 組態設定存放在何處？
<a name="cli-configure-files-where"></a>

會將您在`aws configure`本機檔案中指定的敏感登入資料資訊，名為 `credentials`， AWS CLI 儲存在主目錄中名為 `.aws`的資料夾中。您使用 `aws configure` 指定的較不敏感組態選項，則存放在名為 `config` 的本機檔案中，而此檔案也是存放在主目錄中的 `.aws` 資料夾。

**將憑證存放到組態檔中**  
您可以將所有設定檔設定保留在單一檔案中，因為 AWS CLI 可以從`config`檔案讀取登入資料。如果兩個檔案中都有共用相同名稱之設定檔的憑證，則憑證檔案中的金鑰具有高優先順序。建議您在 `credentials` 檔案中保留憑證。各種語言軟體開發套件 (SDK) 也使用這些檔案。如果您除了 之外還使用其中一個 SDKs AWS CLI，請確認登入資料是否應存放在自己的 檔案中。

主目錄的位置根據作業系統而不同，但在 Windows 中是使用環境變數 `%UserProfile%` 來參考，而在 Unix 系統中是使用 `$HOME` 或 `~` (波狀符號) 來參考。您可以將 `AWS_CONFIG_FILE` 和 `AWS_SHARED_CREDENTIALS_FILE` 環境變數設為其他本機路徑，以指定檔案的非預設位置。如需詳細資訊，請參閱 [設定 的環境變數 AWS CLI](cli-configure-envvars.md)。

當您使用指定 AWS Identity and Access Management (IAM) 角色的共用設定檔時， 會 AWS CLI 呼叫 AWS STS `AssumeRole`操作來擷取臨時登入資料。然後會存放這些憑證 (在 `~/.aws/cli/cache` 中)。後續 AWS CLI 命令會使用快取的暫時登入資料，直到過期為止，此時 AWS CLI 會自動重新整理登入資料。

## 使用命名設定檔
<a name="cli-configure-files-using-profiles"></a>

若未明確定義任何設定檔，系統會使用 `default` 設定檔。

若要使用命名設定檔，請新增 `--profile profile-name` 選項到命令中。下列範例列出使用 `user1` 設定檔中定義的憑證和設定的所有 Amazon EC2 執行個體。

```
$ aws ec2 describe-instances --profile user1
```

如果您要將一個具名設定檔用於多個命令，請將 `AWS_PROFILE` 環境變數設定為預設設定檔，即可避免在每個命令中指定設定檔。您可以使用 `--profile` 參數來覆寫此設定。

------
#### [ Linux or macOS ]

```
$ export AWS_PROFILE=user1
```

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

```
C:\> setx AWS_PROFILE user1
```

使用 `[set](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/set_1)` 設定環境變數會變更使用的數值，直到目前命令提示工作階段結束或直到您將該變數設為其他數值。

使用 [https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/setx](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/setx) 來設定環境變數時，將會變更您在執行命令後建立的所有命令 Shell 中的數值。***不會***影響您執行命令當時已執行的任何命令 Shell。關閉並重新啟動命令 Shell，以查看變更的效果。

設定環境變數會變更預設的設定檔，直到 Shell 工作階段結束或直到您將該變數設為其他數值。您可以將環境變數放入 Shell 的啟動指令碼中，讓它們跨未來的工作階段持續生效。如需詳細資訊，請參閱[設定 的環境變數 AWS CLI](cli-configure-envvars.md)。

------

## 使用命令設定和檢視組態設定
<a name="cli-configure-files-methods"></a>

有數種方法可以使用命令，來檢視和設定您的組態設定。

**`[aws configure](https://docs.aws.amazon.com/cli/v1/reference/configure/index.html)`**  
執行此命令以快速設定和檢視您的 憑證、區域和輸出格式。下列範例顯示範本值。  

```
$ aws configure
AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]: us-west-2
Default output format [None]: json
```

**`[aws configure set](https://docs.aws.amazon.com/cli/v1/reference/configure/set.html)`**  
您可以使用 `aws configure set` 來設定任何憑證或組態設定。使用 `--profile` 設定來指定您想要檢視或修改的設定檔。  
例如，以下命令會在名為 `integ` 的設定檔中進行 `region` 設定。  

```
$ aws configure set region us-west-2 --profile integ
```
若要移除設定，請在文字編輯器中手動刪除 `config` 和 `credentials` 檔案的設定。

**[https://docs.aws.amazon.com/cli/v1/reference/configure/get.html](https://docs.aws.amazon.com/cli/v1/reference/configure/get.html)**  
您可以擷取已使用 `aws configure get` 設定的任何憑證或組態設定。使用 `--profile` 設定來指定您想要檢視或修改的設定檔。  
例如，以下命令會在名為 `region` 的設定檔中擷取 `integ` 設定。  

```
$ aws configure get region --profile integ
us-west-2
```
如果輸出是空的，則設定未明確設定，將會使用預設值。

**[https://docs.aws.amazon.com/cli/latest/reference/reference/configure/import.html](https://docs.aws.amazon.com/cli/latest/reference/reference/configure/import.html)**  
匯入從 IAM Web 主控台產生的 `CSV` 憑證。這不適用於從 IAM Identity Center 產生的憑證；使用 IAM Identity Center 的客戶應使用 aws 來設定 sso。CSV 檔案將會匯入，且設定檔名稱與使用者名稱相符。CSV 檔案必須包含以下標頭。  
+ 使用者名稱
+ 存取金鑰 ID
+ 私密存取金鑰
在初始金鑰對建立過程中，一旦關閉 **Download .csv file (下載 .csv 檔案)** 對話方塊中，您將無法在關閉對話方塊之後存取私密金鑰。如果您需要 `.csv` 檔案，您必須自己建立一個包含所需標頭和您所儲存金鑰對資訊的檔案。如果您無法存取您的金鑰對資訊，則必須建立新的金鑰對。

```
$ aws configure import --csv file://credentials.csv
```

**[https://docs.aws.amazon.com/cli/v1/reference/configure/list.html](https://docs.aws.amazon.com/cli/v1/reference/configure/list.html)**  
若要列出組態資料，請使用 `aws configure list` 命令。此命令會列出設定檔、存取金鑰、私密金鑰，以及用於所指定設定檔的區域組態資訊。對於每個組態項目，它會顯示值、擷取組態值的位置，以及組態變數名稱。  
例如，如果您在環境變數 AWS 區域 中提供 ，此命令會顯示您設定的區域名稱、此值來自環境變數，以及環境變數的名稱。  
若採用臨時憑證方法 (例如，角色和 IAM Identity Center)，此命令會顯示臨時快取的存取金鑰，並顯示私密存取金鑰。  

```
$ aws configure list
NAME       : VALUE                : TYPE                    : LOCATION
profile    : <not set>            : None                    : None
access_key : ****************ABCD : shared-credentials-file : 
secret_key : ****************ABCD : shared-credentials-file : 
region     : us-west-2            : env                     : AWS_DEFAULT_REGION
```

**[https://docs.aws.amazon.com/cli/v1/reference/configure/list-profiles.html](https://docs.aws.amazon.com/cli/v1/reference/configure/list-profiles.html)**  
若要列出所有設定檔名稱，請使用 `aws configure list-profiles` 命令。  

```
$ aws configure list-profiles
default
test
```

**`aws configure mfa-login`**  
執行此命令來設定新的設定檔，以在指定的設定檔中搭配多重要素驗證 (MFA) 和您的 IAM 使用者憑證使用。如果未指定設定檔，則 MFA 是以`default`設定檔為基礎。如果未設定預設設定檔，`mfa-login`命令會在要求 MFA 資訊之前，提示您輸入 AWS 登入資料。下列命令範例使用您的預設組態並建立 MFA 設定檔。  

```
$ aws configure mfa-login
MFA serial number or ARN: arn:aws:iam::123456789012:mfa/MFADeviceName
MFA token code: 123456
Profile to update [session-MFADeviceName]:
Temporary credentials written to profile 'session-MFADeviceName'
Credentials will expire at 2023-05-19 18:06:10 UTC
To use these credentials, specify --profile session-MFADeviceName when running AWS CLI commands
```
若要更新現有的設定檔，請使用 `--update-profile` 參數。  

```
$ aws configure mfa-login --profile myprofile --update-profile mfaprofile
MFA token code: 123456
Temporary credentials written to profile 'mfaprofile'
Credentials will expire at 2023-05-19 18:06:10 UTC
To use these credentials, specify --profile mfaprofile when running AWS CLI commands
```
此命令目前僅支援硬體或軟體型一次性密碼 (OTP) 驗證器。此命令目前不支援通行金鑰和 U2F 裝置。  
如需搭配 IAM 使用 MFA 的詳細資訊，請參閱*AWS Identity and Access Management 《 使用者指南*》中的 [AWS IAM 中的多重要素驗證](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa.html)。

**`aws configure sso`**  
執行此命令以快速設定和檢視您的 AWS IAM Identity Center 登入資料、區域和輸出格式。下列範例顯示範本值。  

```
$ aws configure sso
SSO session name (Recommended): my-sso
SSO start URL [None]: https://my-sso-portal.awsapps.com/start
SSO region [None]: us-east-1
SSO registration scopes [None]: sso:account:access
```

**`aws configure sso-session`**  
執行此命令，在 和 `config` 檔案的 `sso-session`區段中快速設定和檢視您的 AWS IAM Identity Center 登入資料、區域`credentials`和輸出格式。下列範例顯示範本值。  

```
$ aws configure sso-session
SSO session name: my-sso
SSO start URL [None]: https://my-sso-portal.awsapps.com/start
SSO region [None]: us-east-1
SSO registration scopes [None]: sso:account:access
```

**`aws configure export-credentials`**  
執行此命令以使用指定格式匯出目前設定的憑證。根據預設，命令會以 `process` 格式匯出預設憑證，這是 AWS SDK 和工具憑證格式支援的 JSON 格式。  

```
$ aws configure export-credentials
{
  "Version": 1,
  "AccessKeyId": "AKIAIOSFODNN7EXAMPLE",
  "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
}
```
若要匯出特定設定檔和格式，請使用 `--profile` 和 `--format` 選項。格式選項如下：  
+ **（預設）****`process`** - AWS SDKs 和工具`credential_process`組態支援的 JSON 格式。
+ **`env`** ‐ 採用匯出的 Shell 格式的環境變數。
+ **`env-no-export`** ‐ 採用 Shell 格式的非匯出環境變數。
+ **`powershell`** ‐ 採用 PowerShell 格式的環境變數。
+ **`windows-cmd`** ‐ 採用 Windows 命令列格式的環境變數。
下列範例會將 `user1` 設定檔匯出為匯出的 Shell 格式。  

```
$ aws configure export-credentials --profile user1 --format env
export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
```

## 設定新的組態和憑證命令範例
<a name="cli-configure-files-examples"></a>

您可以從下列範例了解如何針對不同驗證方法，用憑證、區域和指定輸出來設定預設設定檔。

------
#### [ Console sessions as short-term credentials ]

此範例可讓您將現有的主控台登入資料與 `aws login`命令搭配使用。此登入方法可與在初始帳戶設定期間建立的根登入資料、IAM 使用者或來自身分提供者的聯合身分搭配使用。如需詳細資訊，請參閱[使用主控台登入資料進行 AWS 本機開發的登入](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sign-in.html)。

```
$ aws login
No AWS region has been configured. The AWS region is the geographic location of your AWS resources. 

If you've used AWS before and already have resources in your account, tell us which region they were 
created in. If you haven't created resources in your account before, you can pick the region closest to you: 
https://docs.aws.amazon.com/global-infrastructure/latest/regions/aws-regions.html. You are able to change 
the region in the CLI at any time with the command `aws configure set region NEW_REGION`.
AWS Region [us-east-1]: us-east-1
Attempting to open the login page for `us-east-1` in your default browser. If the browser does not open, 
use the following URL to complete your login:

https://us-east-1.signin.aws.amazon.com/v1/authorize<abbreviated>

If you cannot connect to this URL, make sure that you have specified a valid region.

Waiting for login...

Logged in with role `arn:aws:sts::012345678910:user/iam-user`, and configured profile 
`default` to use `us-east-1`. This session will expire on October 14, 2025 at 2:04 PST. After this time, you 
can renew your session with `aws login`.
```

------
#### [ IAM Identity Center (SSO) ]

此範例適用於 AWS IAM Identity Center 使用`aws configure sso`精靈。如需詳細資訊，請參閱[使用 設定 IAM Identity Center 身分驗證 AWS CLI](cli-configure-sso.md)。

```
$ aws configure sso
SSO session name (Recommended): my-sso
SSO start URL [None]: https://my-sso-portal.awsapps.com/start
SSO region [None]:us-east-1

Attempting to automatically open the SSO authorization page in your default browser.

There are 2 AWS accounts available to you.
> DeveloperAccount, developer-account-admin@example.com (111122223333) 
  ProductionAccount, production-account-admin@example.com (444455556666)

Using the account ID 111122223333

There are 2 roles available to you.
> ReadOnly
  FullAccess

Using the role name "ReadOnly"

CLI default client Region [None]: us-west-2
CLI default output format [None]: json
CLI profile name [123456789011_ReadOnly]: user1
```

------
#### [ IAM Identity Center (Legacy SSO) ]

此範例適用於 AWS IAM Identity Center 使用`aws configure sso`精靈的舊版方法。若要使用舊版 SSO，請將工作階段名稱留白。如需詳細資訊，請參閱[使用 設定 IAM Identity Center 身分驗證 AWS CLI](cli-configure-sso.md)。

```
$ aws configure sso
SSO session name (Recommended):
SSO start URL [None]: https://my-sso-portal.awsapps.com/start
SSO region [None]:us-east-1

SSO authorization page has automatically been opened in your default browser.
Follow the instructions in the browser to complete this authorization request.

There are 2 AWS accounts available to you.
> DeveloperAccount, developer-account-admin@example.com (111122223333) 
  ProductionAccount, production-account-admin@example.com (444455556666)

Using the account ID 111122223333

There are 2 roles available to you.
> ReadOnly
  FullAccess

Using the role name "ReadOnly"

CLI default client Region [None]: us-west-2
CLI default output format [None]: json
CLI profile name [123456789011_ReadOnly]: user1
```

------
#### [ Short-term credentials ]

此範例適用於來自 AWS Identity and Access Management的短期憑證。aws 配置精靈是用於設定初始值，而 `aws configure set` 命令會指派所需的最後值。如需詳細資訊，請參閱[使用 的短期登入資料進行驗證 AWS CLI](cli-authentication-short-term.md)。

```
$ aws configure
AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]: us-west-2
Default output format [None]: json
$ aws configure set aws_session_token fcZib3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE
```

------
#### [ IAM role ]

此範例適用於 IAM 角色之擔任。使用 IAM 角色的設定檔會從其他設定檔提取憑證，接著套用 IAM 角色許可。在下列範例中，`default` 是憑證的來源設定檔，且 `user1` 借用相同憑證來擔任新角色。由於此程序中沒有精靈，因此每個值皆使用 `aws configure set` 命令設定。如需詳細資訊，請參閱[在 中使用 IAM 角色 AWS CLI](cli-configure-role.md)。

```
$ aws configure set role_arn arn:aws:iam::123456789012:role/defaultrole
$ aws configure set source_profile default
$ aws configure set role_session_name session_user1
$ aws configure set region us-west-2
$ aws configure set output json
```

------
#### [ Amazon EC2 instance metadata credentials ]

此範例適用從託管 Amazon EC2 執行個體中繼資料取得的憑證。由於此程序中沒有精靈，因此每個值皆使用 `aws configure set` 命令設定。如需詳細資訊，請參閱[在 中使用 Amazon EC2 執行個體中繼資料做為登入資料 AWS CLI](cli-configure-metadata.md)。

```
$ aws configure set role_arn arn:aws:iam::123456789012:role/defaultrole
$ aws configure set credential_source Ec2InstanceMetadata
$ aws configure set region us-west-2
$ aws configure set output json
```

------
#### [ Long-term credentials ]

**警告**  
為避免安全風險，在開發專用軟體或使用真實資料時，請勿使用 IAM 使用者進行身分驗證。相反地，搭配使用聯合功能和身分提供者，例如 [AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)。

此範例適用於來自 AWS Identity and Access Management的長期憑證。如需詳細資訊，請參閱[使用 的 IAM 使用者登入資料進行驗證 AWS CLI](cli-authentication-user.md)。

```
$ aws configure
AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]: us-west-2
Default output format [None]: json
```

------

## 支援的 `config` 檔案設定
<a name="cli-configure-files-settings"></a>

**Topics**
+ [全域設定](#cli-configure-files-global)
+ [S3 自訂命令設定](#cli-configure-files-s3)

`config` 檔案中支援下列設定。將會使用指定的 (或預設) 描述檔中列出的數值，除非因為有相同名稱的環境變數或相同名稱的命令列選項而被覆寫。如需有關哪些順序設定具有高優先順序的詳細資訊，請參閱 [設定 AWS CLI 的設定。](cli-chap-configure.md)

### 全域設定
<a name="cli-configure-files-global"></a>

** `account_id_endpoint_mode` **  
指定是否使用 AWS 帳戶型端點 IDs來呼叫支援的 AWS 服務。如需帳戶型端點的詳細資訊，請參閱 [帳戶型端點](cli-configure-endpoints.md#endpoints-accountid)。  
此設定可如下設定：  
+ **(預設)** **`preferred`** – 如果可用，端點應包含帳戶 ID。
+ **`disabled`** – 已解析的端點不包含帳戶 ID。
+ **`required`** – 端點必須包含帳戶 ID。如果帳戶 ID 無法使用，SDK 會擲出錯誤。
可由 `AWS\$1ACCOUNT\$1ID\$1ENDPOINT\$1MODE` 環境變數所覆寫。若要使用帳戶型端點，則必須在 `AWS\$1ACCOUNT\$1ID` 環境變數或 `aws\$1account\$1id` 設定中設定 ID。  

```
account_id_endpoint_mode = preferred
```
**端點優先順序**  
端點組態設定位於多個位置，例如系統或使用者環境變數、本機 AWS 組態檔案，或在命令列上明確宣告為參數。會依特定順序 AWS CLI 檢查這些端點設定，並使用優先順序最高的端點設定。如需端點優先順序清單，請參閱[端點組態和設定優先順序](cli-configure-endpoints.md#endpoints-precedence)。

** `aws_access_key_id` **  
指定用作登入資料一部分的 AWS 存取金鑰，以驗證命令請求。雖然這可以存放在 `config` 檔案中，但建議您存放在 `credentials` 檔案中。  
可由 `AWS_ACCESS_KEY_ID` 環境變數所覆寫。您不能將存取金鑰 ID 指定為命令列選項。  

```
aws_access_key_id = AKIAIOSFODNN7EXAMPLE
```

** `aws_account_id` **  
指定要用於對受支援 呼叫 AWS 的帳戶型端點 ID AWS 服務。如需帳戶型端點的詳細資訊，請參閱 [帳戶型端點](cli-configure-endpoints.md#endpoints-accountid)。  
可由 `AWS\$1ACCOUNT\$1ID` 環境變數所覆寫。`AWS\$1ACCOUNT\$1ID\$1ENDPOINT\$1MODE` 環境變數或 `account\$1id\$1endpoint\$1mode` 設定必須設定為 `preferred` 或 `required`，才能使用此設定。  

```
aws_account_id = 123456789EXAMPLE
```
**端點優先順序**  
端點組態設定位於多個位置，例如系統或使用者環境變數、本機 AWS 組態檔案，或在命令列上明確宣告為參數。會依特定順序 AWS CLI 檢查這些端點設定，並使用優先順序最高的端點設定。如需端點優先順序清單，請參閱[端點組態和設定優先順序](cli-configure-endpoints.md#endpoints-precedence)。

**`aws_secret_access_key`**  
指定用作登入資料一部分的 AWS 私密金鑰，以驗證命令請求。雖然這可以存放在 `config` 檔案中，但建議您存放在 `credentials` 檔案中。  
可由 `AWS_SECRET_ACCESS_KEY` 環境變數所覆寫。您不能將私密存取金鑰指定為命令列選項。  

```
aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
```

**`aws_session_token`**  
指定 AWS 工作階段字符。只有當您手動指定臨時的安全憑證時，才需要工作階段字符。雖然這可以存放在 `config` 檔案中，但建議您存放在 `credentials` 檔案中。  
可由 `AWS_SESSION_TOKEN` 環境變數所覆寫。您不能將工作階段字符指定為命令列選項。  

```
aws_session_token = AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/LTo6UDdyJwOOvEVPvLXCrrrUtdnniCEXAMPLE/IvU1dYUg2RVAJBanLiHb4IgRmpRV3zrkuWJOgQs8IZZaIv2BXIa2R4Olgk
```

**`ca_bundle`**  
指定用於驗證 SSL 憑證的憑證授權機構憑證套件 (副檔名為 `.pem` 的檔案)。  
可由 `AWS\$1CA\$1BUNDLE` 環境變數或 `--ca-bundle` 命令列選項所覆寫。  

```
ca_bundle = dev/apps/ca-certs/cabundle-2019mar05.pem
```

**`cli_auto_prompt`**  
啟用 第 2 AWS CLI 版的自動提示。有兩種設定可以使用：  
+ 在您每次嘗試執行 `aws` 命令時，**`on`** 都會使用完整的自動提示模式。這包括在完整的命令或不完整的命令之後按下 **ENTER**。

  ```
  cli_auto_prompt = on
  ```
+ **`on-partial`** 使用部分自動提示模式。如果命令不完整或因用戶端驗證錯誤而無法執行，則會使用自動提示。如果您有預先存在的指令碼、Runbook，或是您只希望系統自動提示您不熟悉的命令 (而非針對每個命令發出提示)，這個模式就特別有用。

  ```
  cli_auto_prompt = on-partial
  ```
您可以使用 `aws\$1cli\$1auto\$1prompt` 環境變數或 `--cli-auto-prompt` 及 `--no-cli-auto-prompt` 命令列參數來覆寫此設定。  
如需第 2 AWS CLI 版自動提示功能的詳細資訊，請參閱 [在 中啟用和使用命令提示字元 AWS CLI](cli-usage-parameters-prompting.md)。

**`cli_binary_format`**  
指定 AWS CLI 版本 2 如何解譯二進位輸入參數。它可能是以下其中一個數值：  
+ **base64** – 這是預設值。以二進位大型物件 (BLOB) 輸入的輸入參數接受 base64 編碼的字串。若要傳遞實際的二進位內容，請將內容放置在檔案中，並在參數值中使用 `fileb://` 前綴，以提供檔案路徑和名稱。若要傳遞包含在檔案中的 base64 編碼文字，請在參數值中使用 `file://` 前綴，以提供檔案路徑和名稱。
+ **raw-in-base64-out** – 第 1 AWS CLI 版的預設 。如果設定的值為 `raw-in-base64-out`，則會將使用 `file://` 字首參照的檔案讀取為文字，然後 AWS CLI 嘗試將其編碼為二進位。
此項目沒有同等環境變數。您可以使用 `--cli-binary-format raw-in-base64-out` 參數，在單一命令上指定數值。  

```
cli_binary_format = raw-in-base64-out
```
如果您使用字`fileb://`首表示法參考檔案中的二進位值， AWS CLI *一律*會預期檔案包含原始二進位內容，而不會嘗試轉換該值。  
如果您使用`file://`字首表示法參考檔案中的二進位值， 會根據目前的`cli_binary_format`設定 AWS CLI 處理檔案。如果該設定的值為 `base64`（未明確設定時為預設值），則 AWS CLI 預期檔案包含 base64 編碼的文字。如果該設定的值為 `raw-in-base64-out`，則 AWS CLI 預期檔案包含原始二進位內容。

**`cli_help_output`**  
自版本 `2.31.0` 起，`help` 命令的顯示由 `cli_help_output` 設定來設定，並具有下列值：  
+  **(預設)** `terminal` ‐ 在終端中開啟 man 頁面。
+ `browser` ‐ 在預設瀏覽器中將 man 頁面開啟為本機 HTML 檔案。開啟預設瀏覽器時，通知會列印到您的終端機，如果 AWS CLI 無法開啟您的瀏覽器，則會顯示錯誤訊息。
+ `url` ‐ 針對 AWS CLI 您已安裝的 版本，將 URL 列印至線上 AWS CLI 參考指南。遵守用戶端分頁的設定，例如`AWS_PAGER`環境變數。

```
cli_help_output = browser
```
如需有關 `help` 命令的詳細資訊，請參閱 [存取 的說明和資源 AWS CLI](cli-usage-help.md)。

**`cli_history`**  
預設為停用。此設定會啟用 AWS CLI命令歷史記錄。啟用此設定後， 會 AWS CLI 記錄 `aws` 命令的歷史記錄。  

```
cli_history = enabled
```
您可以使用 `aws history list` 命令來列出歷史記錄，並且在 `aws history show` 命令中使用產生的 `command_ids` 取得詳細資訊。如需詳細資訊，請參閱 *AWS CLI 參考指南*中的 [https://docs.aws.amazon.com/cli/latest/reference/history/index.html](https://docs.aws.amazon.com/cli/latest/reference/history/index.html)。

**`cli_pager`**  
指定用於輸出的分頁程式。根據預設，第 2 AWS CLI 版會透過作業系統的預設分頁程式傳回所有輸出。  
可以由 AWS\$1PAGER 環境變數所覆寫。  

```
cli_pager=less
```

**`cli_timestamp_format`**  
指定時間戳記值的輸出格式。您可以指定下列任一數值：  
+ **iso8601** – 第 2 AWS CLI 版的預設值。如果指定， 會根據 [ISO 8601 ](https://www.iso.org/iso-8601-date-and-time-format.html) AWS CLI 重新格式化輸出中的所有時間戳記。ISO 8601 格式化的時間戳記如下所示。下列範例示範如何設定時間格式，方法是使用 `T` 分隔日期和時間，並在時間之後包含 `Z`。

  ```
  YYYY-MM-DDThh:mm:ssZ
  ```

  下列範例顯示使用先前格式的時間戳記。

  ```
  2024-05-08T15:16:43Z
  ```
+ **wire** – 第 1 AWS CLI 版的預設值。如果指定，則 AWS CLI 會顯示與 HTTP 查詢回應中所接收完全相同的所有時間戳記值。
此設定沒有同等環境變數或命令列選項。此設定不會更改時間戳記輸入，只會更改輸出格式。  

```
cli_timestamp_format = iso8601
```

**`credential\$1process`**  
指定 AWS CLI 執行的外部命令，以產生或擷取要用於此命令的身分驗證憑證。命令必須以特定格式傳回憑證。如需有關如何使用此設定的詳細資訊，請參閱 [在 中使用外部程序來採購登入資料 AWS CLI](cli-configure-sourcing-external.md)。  
此項目沒有同等環境變數或命令列選項。  

```
credential_process = /opt/bin/awscreds-retriever --username susan
```

**`credential\$1source`**  
在 Amazon EC2 執行個體或容器中使用，以指定 AWS CLI 可以找到用於擔任您使用 `role_arn` 參數所指定角色的憑證。您無法在同一個描述檔中同時指定 `source_profile` 和 `credential_source`。  
此參數可以有下列三個數值中的一個：  
+ **環境** – 指定 AWS CLI 是從環境變數擷取來源憑證。
+ **Ec2InstanceMetadata** – 指定 AWS CLI 要使用連接到 [EC2 執行個體描述](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html)檔的 IAM 角色來取得來源登入資料。
+ **EcsContainer** – 指定 AWS CLI 使用連接到 ECS 容器的 IAM 角色做為來源憑證。

```
credential_source = Ec2InstanceMetadata
```

**`duration_seconds`**  
指定角色工作階段的最大持續時間 (以秒為單位)。此數值的範圍可以從 900 秒 (15 分鐘) 到角色的最大工作階段持續時間設定的數值 (其最大值為 43200)。這是選用參數，並且依預設，此數值會設為 3600 秒。

**`endpoint_url`**  
指定用於所有服務要求的端點。如果在 `config` 檔案的 [`services`](#cli-configure-files-format-services) 區段中使用此設定，則端點僅用於指定的服務。如需詳細資訊，請參閱[設定所有 的全域端點 AWS 服務](cli-configure-endpoints.md#endpoints-global)。  
以下範例使用 Amazon S3 的全域端點 `http://localhost:1234` 和服務特定端點 `http://localhost:4567`。  

```
[profile dev]
endpoint_url = http://localhost:1234
services = s3-specific

[services s3-specific]
s3 = 
  endpoint_url = http://localhost:4567
```
**端點優先順序**  
端點組態設定位於多個位置，例如系統或使用者環境變數、本機 AWS 組態檔案，或在命令列上明確宣告為參數。會依特定順序 AWS CLI 檢查這些端點設定，並使用優先順序最高的端點設定。如需端點優先順序清單，請參閱[端點組態和設定優先順序](cli-configure-endpoints.md#endpoints-precedence)。

**`ignore_configure_endpoint_urls`**  
如果啟用， 會 AWS CLI 忽略 `config` 檔案中指定的所有自訂端點組態。有效值為 `true` 和 `false`。  

```
ignore_configure_endpoint_urls = true
```
**端點優先順序**  
端點組態設定位於多個位置，例如系統或使用者環境變數、本機 AWS 組態檔案，或在命令列上明確宣告為參數。會依特定順序 AWS CLI 檢查這些端點設定，並使用優先順序最高的端點設定。如需端點優先順序清單，請參閱[端點組態和設定優先順序](cli-configure-endpoints.md#endpoints-precedence)。

**`external\$1id`**  
指定一個唯一識別符，第三方用來在其客戶帳戶擔任角色。這映射到 `ExternalId` 操作的 `AssumeRole` 參數。只有在角色的信任政策指定 `ExternalId` 的數值時，才需要此參數。如需詳細資訊，請參閱《*IAM 使用者指南*》中的[如何在將 AWS 資源的存取權授予第三方時使用外部 ID](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html)。

**`max\$1attempts`**  
指定重試 AWS CLI 處理常式使用的最大重試次數值，其中初始呼叫會計入您提供的`max_attempts`值。  
您可以使用 `AWS_MAX_ATTEMPTS` 環境變數來覆寫此數值。  

```
max_attempts = 3
```

**`mfa\$1serial`**  
擔任角色時使用的 MFA 裝置識別碼。只有在所擔任角色的信任政策包含要求 MFA 身分驗證的條件時才具強制性。此數值可以是硬體裝置的序號 (例如 `GAHT12345678`) 或虛擬 MFA 裝置的 Amazon Resource Name (ARN) (例如 `arn:aws:iam::123456789012:mfa/user`)。

**`output`**  
對於請求使用此描述檔的命令，指定預設輸出格式。您可以指定下列任何數值：  
+ **[`json`](cli-usage-output-format.md#json-output)** – 輸出的格式為 [JSON](https://json.org/) 字串。
+  **[`yaml`](cli-usage-output-format.md#yaml-output)** – 輸出的格式為 [YAML](https://yaml.org/) 字串。
+ **[`yaml-stream`](cli-usage-output-format.md#yaml-stream-output)** – 輸出採用串流方式且格式為 [YAML](https://yaml.org/) 字串。串流可加速處理大型資料類型。
+ **[`text`](cli-usage-output-format.md#text-output)** – 輸出的格式是多行以 Tab 分隔的字串值。這對於將輸出傳遞給文字處理器 (如 `grep`、`sed` 或 `awk`) 非常有用。
+ **[`table`](cli-usage-output-format.md#table-output)** – 輸出的格式為使用字元 \$1\$1- 形成儲存格框線的表格。它通常以「方便人類使用」的格式來呈現資訊，這種格式比其他格式更容易閱讀，但在編寫程式方面較不有用。
+ **[`off`](cli-usage-output-format.md#off-output)** – 輸出會隱藏 stdout 的所有命令輸出。這在自動化指令碼和 CI/CD 管道中非常有用，您只需檢查命令的結束程式碼，而無需處理輸出。
可由 `AWS_DEFAULT_OUTPUT` 環境變數或 `--output` 命令列選項所覆寫。  

```
output = table
```

**`parameter_validation`**  
指定 AWS CLI 用戶端是否在將參數傳送到 AWS 服務端點之前嘗試驗證參數。  
+ **true** – 這是預設值。如果指定， 會 AWS CLI 執行命令列參數的本機驗證。
+ **false** – 如果指定，在將命令列參數傳送到 AWS 服務端點之前， AWS CLI 不會驗證命令列參數。
此項目沒有同等環境變數或命令列選項。  

```
parameter_validation = false
```

**`region`**  
指定 AWS 區域 針對使用此設定檔請求的命令，將請求傳送至 的 。  
+ 您可以指定可用於所選服務的任何區域程式碼，如 *Amazon Web Services 一般參考* 中的 [AWS 區域與端點](https://docs.aws.amazon.com/general/latest/gr/rande.html)所列。
+ `aws_global` 可讓您為支援全域端點的服務指定全域端點，以及區域端點，例如 AWS Security Token Service (AWS STS) 和 Amazon Simple Storage Service (Amazon S3)。
您可以使用  `AWS_REGION` 環境變數、 `AWS_DEFAULT_REGION` 環境變數或 `--region` 命令列選項來覆寫此數值。  

```
region = us-west-2
```

**`request_checksum_calculation`**  
指定何時計算請求承載的檢查總和，選項如下：  
+ `when_supported` – **(預設)** 當操作在其服務模型中指定檢查總和演算法或需要請求檢查總和時，會計算請求承載檢查總和。
+ `when_required` – 當操作需要請求檢查總和，或使用者提供由 AWS 服務建模的 `requestAlgorithmMember` 時，系統會計算請求承載檢查總和。

```
request_checksum_calculation = when_supported
```
環境變數 [`AWS_REQUEST_CHECKSUM_CALCULATION`](cli-configure-envvars.md#envvars-list-AWS_REQUEST_CHECKSUM_CALCULATION) 會覆寫此設定。

**`response_checksum_validation`**  
指定何時執行回應承載的檢查總和驗證，選項如下：  
+ `when_supported` – **（預設）** 當 操作在其 AWS CLI 支援的服務模型中指定回應演算法時，會執行回應承載檢查總和驗證。
+ `when_required` – 當 操作在其 AWS CLI 支援的服務模型中指定回應演算法，而且您在操作輸入`ENABLED`中將模型設定為 `requestValidationModeMember` 時，就會執行回應承載檢查總和驗證。

```
response_checksum_validation = when_supported
```
環境變數 [`AWS_RESPONSE_CHECKSUM_VALIDATION`](cli-configure-envvars.md#envvars-list-AWS_RESPONSE_CHECKSUM_VALIDATION) 會覆寫此設定。

**`retry\$1mode`**  
指定使用哪種重試模式 AWS CLI 。有三種重試模式可用：`standard` (預設)、`legacy` (預設) 和 `adaptive`。如需有關重試的詳細資訊，請參閱 [AWS CLI 中的重試次數 AWS CLI](cli-configure-retries.md)。  
您可以使用 `AWS_RETRY_MODE` 環境變數來覆寫此數值。  

```
retry_mode = standard
```

**`role\$1arn`**  
指定您要用來執行 AWS CLI 命令之 IAM 角色的 Amazon Resource Name (ARN)。您還必須指定下列其中一個參數，以識別具有許可能擔任此角色的憑證：  
+ source\$1profile
+ credential\$1source

```
role_arn = arn:aws:iam::123456789012:role/role-name
```
環境變數 [`AWS_ROLE_ARN`](cli-configure-envvars.md#envvars-list-AWS_ROLE_ARN) 會覆寫此設定。  
如需使用 Web 身分的詳細資訊，請參閱 [擔任具有 Web 身分的角色](cli-configure-role.md#cli-configure-role-oidc)。

**`role\$1session\$1name`**  
指定要連接到角色工作階段的名稱。此數值會在 `RoleSessionName` 呼叫 AWS CLI 操作時提供給 `AssumeRole` 參數，並成為所擔任角色使用者 ARN 的一部分：` arn:aws:sts::123456789012:assumed-role/role_name/role_session_name`。這是選擇性的參數。若您未提供此數值，將會自動產生工作階段名稱。此名稱會出現在與此工作階段相關聯之項目的 AWS CloudTrail 日誌中。  

```
role_session_name = maria_garcia_role
```
環境變數 [`AWS_ROLE_SESSION_NAME`](cli-configure-envvars.md#envvars-list-AWS_ROLE_SESSION_NAME) 會覆寫此設定。  
如需使用 Web 身分的詳細資訊，請參閱 [擔任具有 Web 身分的角色](cli-configure-role.md#cli-configure-role-oidc)。

**`services`**  
指定要用於設定檔的服務組態。  

```
[profile dev-s3-specific-and-global]
endpoint_url = http://localhost:1234
services = s3-specific

[services s3-specific]
s3 = 
  endpoint_url = http://localhost:4567
```
如需 `services` 區段的詳細資訊，請參閱 [區段類型：`services`](#cli-configure-files-format-services)。  
環境變數 [`AWS_ROLE_SESSION_NAME`](cli-configure-envvars.md#envvars-list-AWS_ROLE_SESSION_NAME) 會覆寫此設定。  
如需使用 Web 身分的詳細資訊，請參閱 [擔任具有 Web 身分的角色](cli-configure-role.md#cli-configure-role-oidc)。

**`sdk_ua_app_id`**  
單一 AWS 帳戶 可供多個客戶應用程式用來呼叫 AWS 服務。應用程式 ID 會識別哪些來源應用程式使用 AWS 服務. AWS SDKs和 服務進行一組呼叫，不使用或解譯此值，而不是在客戶通訊中將其呈現。例如，此值可以包含在操作電子郵件中，以唯一識別哪些應用程式與通知相關聯。  
應用程式 ID 是字串，長度上限為 50 個字元。允許使用字母、數字和下列特殊字元：`! $ % & * + - . , ^ _ ` | ~`。預設情況下，不會指派任何值。  

```
sdk_ua_app_id = prod1
```
此設定可透過使用 [`AWS_SDK_UA_APP_ID`](cli-configure-envvars.md#envvars-list-AWS_SDK_UA_APP_ID) 環境變數來覆寫。您無法將此數值設為命令列參數。

**`sigv4a_signing_region_set`**  
使用逗號分隔清單來指定透過 SigV4a 簽署時要使用的區域。如果未設定此變數， AWS CLI 會使用 使用的預設值 AWS 服務。如果 AWS 服務 沒有預設值，則請求簽章會在使用 值的所有區域中生效`*`。  

```
sigv4a_signing_region_set = us-west-2, us-east-1
```
如需 SigV4a 的詳細資訊，請參閱《IAM 使用者指南》**中的 [API 請求的AWS Signature 第 4 版](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html)。  
此設定可透過使用 [`AWS_SIGV4A_SIGNING_REGION_SET`](cli-configure-envvars.md#envvars-list-AWS_SIGV4A_SIGNING_REGION_SET) 環境變數來覆寫。您無法將此數值設為命令列參數。

**`source\$1profile`**  
指定具有長期憑證、 AWS CLI 可用來擔任您使用 `role_arn` 參數所指定角色的具名描述檔。您無法在同一個描述檔中同時指定 `source_profile` 和 `credential_source`。  

```
source_profile = production-profile
```

**`sso\$1account\$1id`**  
指定包含 IAM 角色 AWS 的帳戶 ID，其中包含您要授予相關聯 IAM Identity Center 使用者的許可。  
此設定沒有環境變數或命令列選項。  

```
sso_account_id = 123456789012
```

**`sso\$1region` **  
指定 AWS 包含 AWS 存取入口網站主機的區域。這與預設的 CLI `region` 參數不同，且可以是與其不同的區域。  
此設定沒有環境變數或命令列選項。  

```
sso_region = us_west-2
```

**`sso\$1registration\$1scopes` **  
要針對 `sso-session` 授權的逗號分隔清單範圍。範圍授權對 IAM Identity Center 承載字符授權端點的存取。有效範圍是一個字串，例如 `sso:account:access`。這個設定不適用於舊版不可重新整理的組態設定。  

```
sso_registration_scopes = sso:account:access
```

**`sso\$1role\$1name` **  
使用此設定檔時，指定定義使用者權限的 IAM 角色的易記名稱。  
此設定沒有環境變數或命令列選項。  

```
sso_role_name = ReadAccess
```

**`sso\$1start\$1url`**  
指定指向組織 AWS 存取入口網站的 URL。 AWS CLI 使用此 URL 與 IAM Identity Center 服務建立工作階段，以驗證其使用者。若要尋找您的 AWS 存取入口網站 URL，請使用下列其中一項：  
+ 開啟您的邀請電子郵件，即會列出 AWS 存取入口網站 URL。
+ 在 https：//[https://console.aws.amazon.com/singlesignon/](https://console.aws.amazon.com/singlesignon/) 開啟 AWS IAM Identity Center 主控台。 AWS 存取入口網站 URL 會列在您的設定中。
此設定沒有環境變數或命令列選項。  

```
sso_start_url = https://my-sso-portal.awsapps.com/start
```

**`use_dualstack_endpoint`**  
使用雙堆疊端點傳送 AWS 請求。若要進一步了解支援 IPv4 和 IPv6 流量的雙堆疊端點，請參閱《Amazon Simple Storage Service 使用者指南》**中的[使用 Amazon S3 雙堆疊端點](https://docs.aws.amazon.com/AmazonS3/latest/userguide/dual-stack-endpoints.html)。雙堆疊端點適用於部分區域的某些服務。如果服務或 不存在雙堆疊端點 AWS 區域，請求會失敗。有效設定為 `true` 和 `false`。此選項根據預設為停用。如需詳細資訊，請參閱[設定為對所有 使用雙堆疊端點 AWS 服務](cli-configure-endpoints.md#endpoints-dual-stack)。  
 這與 `use_accelerate_endpoint` 設定互斥。  
**端點優先順序**  
端點組態設定位於多個位置，例如系統或使用者環境變數、本機 AWS 組態檔案，或在命令列上明確宣告為參數。會依特定順序 AWS CLI 檢查這些端點設定，並使用優先順序最高的端點設定。如需端點優先順序清單，請參閱[端點組態和設定優先順序](cli-configure-endpoints.md#endpoints-precedence)。

**`use_fips_endpoint`**  
有些 AWS 服務提供端點，支援[聯邦資訊處理標準 (FIPS) 140-2](https://aws.amazon.com/compliance/fips/) AWS 區域。當 AWS 服務支援 FIPS 時，此設定會指定 AWS CLI 應使用 的 FIPS 端點。與標準 AWS 端點不同，FIPS 端點使用符合 FIPS 140-2 的 TLS 軟體程式庫。會與美國政府互動的企業可能需要這些端點。如需詳細資訊，請參閱 [設定為對所有 使用 FIPs端點 AWS 服務](cli-configure-endpoints.md#endpoints-fips)。  
如果啟用此設定，但 服務不存在 FIPS 端點 AWS 區域，則 AWS 命令可能會失敗。在此情況下，請使用 `--endpoint-url` 選項或使用[服務特定端點](cli-configure-endpoints.md#endpoints-service-specific)手動指定要在命令中使用的端點。  
**端點優先順序**  
端點組態設定位於多個位置，例如系統或使用者環境變數、本機 AWS 組態檔案，或在命令列上明確宣告為參數。會依特定順序 AWS CLI 檢查這些端點設定，並使用優先順序最高的端點設定。如需端點優先順序清單，請參閱[端點組態和設定優先順序](cli-configure-endpoints.md#endpoints-precedence)。

**`web\$1identity\$1token\$1file`**  
指定檔案的路徑，其包含由身分提供者提供的 OAuth 2.0 存取字符或 OpenID Connect ID 字符。 AWS CLI 會載入此檔案的內容，並將其作為 `WebIdentityToken` 引數傳遞至 `AssumeRoleWithWebIdentity` 操作。  
環境變數 `AWS\$1WEB\$1IDENTITY\$1TOKEN\$1FILE` 會覆寫此設定。  
如需使用 Web 身分的詳細資訊，請參閱 [擔任具有 Web 身分的角色](cli-configure-role.md#cli-configure-role-oidc)。

**`tcp_keepalive`**  
指定 AWS CLI 用戶端是否使用 TCP 保持連線封包。  
此項目沒有同等環境變數或命令列選項。  

```
tcp_keepalive = false
```

### S3 自訂命令設定
<a name="cli-configure-files-s3"></a>

Amazon S3 支援數個設定，以設定 如何 AWS CLI 執行 Amazon S3 操作。有些適用於 `s3api` 和 `s3` 命名空間中的所有 S3 命令。其他則專用於 S3「自訂」命令，這些命令摘錄常見的操作，而不僅止於一對一映射到 API 操作。`aws s3` 傳輸命令 `cp`、`sync`、`mv` 和 `rm` 有額外設定，供您用來控制 S3 傳輸。

您可以在 `config` 檔案中指定 `s3` 巢狀設定，以設定所有這些選項。每個設定都各自一行縮排。

**注意**  
這些設定完全是選用。您無需設定任何這些設定，就應該能夠成功使用 `aws s3` 傳輸命令。提供這些設定可讓您基於效能而調整，或控制您執行這些 `aws s3` 命令的特定環境。

這些設定全部都在 `config` 檔案中的最上層 `s3` 索引鍵之下設定，如以下 `development` 描述檔的範例所示。

```
[profile development]
s3 =
  max_concurrent_requests = 20
  max_queue_size = 10000
  multipart_threshold = 64MB
  multipart_chunksize = 16MB
  max_bandwidth = 50MB/s
  use_accelerate_endpoint = true
  addressing_style = path
```

以下設定適用於 `s3` 或 `s3api` 命名空間中的任何 S3 命令。

**`addressing_style`**  
指定要使用的定址樣式。這控制儲存貯體名稱是否位於主機名稱或為 URL 的一部分。有效值為：`path`、`virtual` 和 `auto`。預設值為 `auto`。  
建構 Amazon S3 端點有兩種樣式。第一種稱為 `virtual`，並且在主機名稱中包含儲存貯體名稱。例如：`https://bucketname.s3.amazonaws.com`。或者，如果使用 `path` 樣式，則儲存貯體名稱就如同 URI 中的路徑，例如 `https://s3.amazonaws.com/bucketname`。CLI 中的預設值是使用 `auto`，將會儘可能嘗試使用 `virtual` 樣式，但在需要時會回復為 `path` 樣式。例如，如果您的儲存貯體名稱與 DNS 不相容，則儲存貯體名稱不能作為主機名稱的一部分，而必須在路徑中。使用 `auto` 時，CLI 會偵測到這個情況，並自動切換到 `path` 樣式。如果您將定址樣式設定為 `path`，則必須確保您在 AWS CLI 中設定的 AWS 區域符合您儲存貯體的區域。

**`payload_signing_enabled`**  
指定是否以 SHA256 簽署 sigv4 承載。在預設情況下，使用 HTTPS 來串流上傳時 (`UploadPart` 和 `PutObject`) 會停用此參數。根據預設，在串流上傳時 (`UploadPart` 和 `PutObject`)，這會設定為 `false`，但僅限於 `ContentMD5` 存在 (依預設會產生) 且端點使用 HTTPS 的情況。  
如果設定為 true，S3 請求會收到 SHA256 檢查總和形式的額外內容驗證，這是為您計算並且包含在請求簽章中。如果設定為 false，則不計算檢查總和。停用此參數有助於降低檢查總和計算所造成的效能負荷。

**`use_accelerate_endpoint`**  
對所有 `s3` 和 `s3api` 命令使用 Amazon S3 加速端點。預設值為 false。這與 `use_dualstack_endpoint` 設定互斥。  
如果設為 true， 會將所有 Amazon S3 請求 AWS CLI 導向至位於 的`S3 Accelerate`端點`s3-accelerate.amazonaws.com`。若要使用這個端點，您必須啟用儲存貯體來使用 `S3 Accelerate`。所有請求都是使用虛擬樣式的儲存貯體定址所傳送：`my-bucket.s3-accelerate.amazonaws.com`。不會將任何 `ListBuckets`、`CreateBucket` 和 `DeleteBucket ` 請求傳送至 S3 加速端點，因為該端點不支援這些操作。如果將任何 `s3` 或 `s3api` 命令的 `--endpoint-url` 參數設為 `https://s3-accelerate.amazonaws.com` 或 `http://s3-accelerate.amazonaws.com`，也可以設定此行為。

**`use_dualstack_endpoint`**  
允許使用雙堆疊端點傳送 `s3` 和 `s3api` 請求。若要進一步了解支援 IPv4 和 IPv6 流量的雙堆疊端點，請參閱《Amazon Simple Storage Service 使用者指南》**中的[使用 Amazon S3 雙堆疊端點](https://docs.aws.amazon.com/AmazonS3/latest/userguide/dual-stack-endpoints.html)。雙堆疊端點適用於部分區域的某些服務。如果服務或 不存在雙堆疊端點 AWS 區域，請求會失敗。有效設定為 `true` 和 `false`。此選項根據預設為停用。如需詳細資訊，請參閱[設定為對所有 使用雙堆疊端點 AWS 服務](cli-configure-endpoints.md#endpoints-dual-stack)。  
 這與 `use_accelerate_endpoint` 設定互斥。

**`disable_s3_express_session_auth`**  
是否停用 `s3`和 `s3api`命令的 Amazon S3 Express 工作階段身分驗證。值必須是布林值。預設為 false。如果設定為 true，用戶端將不會使用 Amazon S3 Express 工作階段身分驗證。如果設定為 false，預設行為將用於判斷是否使用 Amazon S3 Express 工作階段身分驗證。  
您可以使用 ` AWS\$1S3\$1DISABLE\$1EXPRESS\$1SESSION\$1AUTH`環境變數覆寫此設定。

以下設定只適用於 `s3` 命名空間命令集的命令。

**`max_bandwidth`**  
指定往返於 Amazon S3 上傳和下載資料時可消耗的最大頻寬。預設值是無限制。  
這會限制 S3 命令在往返於 Amazon S3 傳輸資料時可使用的最大頻寬。這個數值僅適用於上傳和下載，不適用於複製或刪除。數值以每秒位元組數為單位。數值可以指定為：  
+ 整數。例如，`1048576` 將最大頻寬使用量設定為每秒 1 百萬位元組。
+ 整數加上速率尾碼。您可以使用 `KB/s`、`MB/s` 或 `GB/s` 指定速率尾碼，例如 `300KB/s` 和 `10MB/s`。
一般而言，我們建議您先降低 `max_concurrent_requests`，以嘗試降低頻寬耗用量。如果這還無法將限制頻寬耗用量調到所需的速率，您可以使用 `max_bandwidth` 設定來進一步限制頻寬耗用量。這是因為 `max_concurrent_requests` 控制目前執行多少個執行緒。如果您先降低 `max_bandwidth` 但保留較高的 `max_concurrent_requests` 設置，則可能導致執行緒必須等待不必要的等待。這可能會導致過多的資源消耗和連線逾時。

**`max_concurrent_requests`**  
指定並行請求數量上限。預設值為 10。  
`aws s3` 傳輸命令是多執行緒。隨時可以執行多個 Amazon S3 請求。例如，當您使用 命令`aws s3 cp localdir s3://bucket/ --recursive`將檔案上傳至 S3 儲存貯體時， AWS CLI 可以`localdir/file3`平行上傳檔案 `localdir/file1`、 `localdir/file2`和 。設定 `max_concurrent_requests` 會指定可同時執行的傳輸操作數量上限。  
由於幾個原因，您可能需要變更這個數值：  
+ 降低這個數值 – 在某些環境中，10 個並行請求的預設值可能拖垮系統。這可能導致連線逾時，或使系統的回應能力變慢。降低這個數值可讓 S3 傳輸命令耗用較少的資源。缺點是 S3 傳輸可能需要更久才會完成。如果您使用工具來限制頻寬，則可能需要降低這個數值。
+ 提高這個數值 – 在某些情況下，您可能希望 Amazon S3 傳輸依需要儘量使用網路頻寬，以儘快完成。在這種情況下，預設的並行請求數量可能還不足以使用所有可用的網路頻寬。提高此數值可以縮短完成 Amazon S3 傳輸所花的時間。

**`max_queue_size`**  
指定任務佇列中的任務數量上限。預設值為 1000。  
 AWS CLI 內部使用模型，其會排入佇列，然後由編號受限於 的消費者執行的 Amazon S3 任務`max_concurrent_requests`。任務通常會映射到單一 Amazon S3 操作。例如，任務可能是 `PutObjectTask`、`GetObjectTask` 或 `UploadPartTask`。任務新增到佇列的速率可比消費者完成任務的速率快很多。為了避免無限制成長，任務佇列大小會受限於特定大小。這個設定會變更該數量的上限值。  
您通常不需要變更此設定。此設定也對應於 AWS CLI 知道需要執行的任務數量。這表示根據預設， AWS CLI 只能看到 1000 個任務。增加此值表示 AWS CLI 可以更快地知道所需的任務總數，假設佇列率比任務完成率更快。缺點是較大的 max\$1queue\$1size 需要更多記憶體。

**`multipart_chunksize`**  
指定 AWS CLI 用於分段傳輸個別檔案的區塊大小。預設值為 8 MB，下限為 5 MB。  
當檔案傳輸超過 `multipart_threshold` 時， AWS CLI 會將檔案分割成此大小的區塊。指定這個數值所使用的語法與 `multipart_threshold` 相同，包括以整數指定位元組數量，或使用大小和尾碼。

**`multipart_threshold`**  
指定 AWS CLI 用於分段傳輸個別檔案的大小閾值。預設值為 8 MB。  
當上傳、下載或複製檔案時，如果檔案超過該大小，Amazon S3 命令會切換到分段操作。您有兩種方式可以指定此數值：  
+ 以位元組為單位的檔案大小。例如 `1048576`。
+ 附上大小尾碼的檔案大小。您可以使用 `KB`、`MB`、`GB` 或 `TB`，例如 `10MB` 和 `1GB`。
**注意**  
對於可用於分段操作的有效值，S3 可以施加限制。如需詳細資訊，請參閱《Amazon Simple Storage Service 使用者指南》**中的 [S3 分段上傳](https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html)文件。

# 設定 的環境變數 AWS CLI
<a name="cli-configure-envvars"></a>

環境變數提供另一種方法來指定組態選項和憑證，且適合用來編寫指令碼。

**選項的優先順序**
+ 如果您使用本主題中所述的其中一個環境變數來指定選項，它將覆寫從組態檔中描述檔載入的任何數值。
+ 如果您在 AWS CLI 命令列上使用 參數指定 選項，它會覆寫來自對應環境變數或組態檔案中設定檔的任何值。

如需優先順序以及 如何 AWS CLI 決定要使用哪些登入資料的詳細資訊，請參閱 [設定 AWS CLI 的設定。](cli-chap-configure.md)。

**Topics**
+ [如何設定環境變數](#envvars-set)
+ [AWS CLI 支援的環境變數](#envvars-list)

## 如何設定環境變數
<a name="envvars-set"></a>

下列範例說明如何為預設使用者設定環境變數。

------
#### [ Linux or macOS ]

```
$ export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
$ export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
$ export AWS_DEFAULT_REGION=us-west-2
```

設定環境變數會變更使用的數值，直到 Shell 工作階段結束或直到您將該變數設為其他數值。您可以在 Shell 的啟動指令碼中設定變數，讓它們跨未來的工作階段持續生效。

------
#### [ Windows Command Prompt ]

**針對所有工作階段設定**

```
C:\> setx AWS_ACCESS_KEY_ID AKIAIOSFODNN7EXAMPLE
C:\> setx AWS_SECRET_ACCESS_KEY wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
C:\> setx AWS_DEFAULT_REGION us-west-2
```

使用 [https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/setx](https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/setx) 設定環境變數時，將會變更在目前命令提示工作階段及您在執行命令後建立的所有命令提示工作階段中使用的數值。***不會***影響您執行命令當時已執行的其他命令 Shell。您可能需要重新啟動終端機才能載入設定。

**僅針對目前工作階段設定**

使用 `[set](https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/set_1)` 設定環境變數會變更使用的數值，直到目前命令提示工作階段結束或直到您將該變數設為其他數值。

```
C:\> set AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
C:\> set AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
C:\> set AWS_DEFAULT_REGION=us-west-2
```

------
#### [ PowerShell ]

```
PS C:\> $Env:AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE"
PS C:\> $Env:AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
PS C:\> $Env:AWS_DEFAULT_REGION="us-west-2"
```

如果您在 PowerShell 提示字元中設定環境變數 (如前一個範例所示)，它只會在目前的工作階段儲存該數值。若要讓環境變數設定在所有 PowerShell 和命令提示字元工作階段中持續存在，請使用 **Control Panel** (控制面板) 中的 **System** (系統) 應用程式。或者，您也可以將變數新增到 PowerShell 設定檔，為所有未來 PowerShell 工作階段設定變數。如需有關存放環境變數或跨工作階段持續存放的詳細資訊，請參閱 [PowerShell 文件](https://learn.microsoft.com/powershell/module/microsoft.powershell.core/about/about_environment_variables)。

------

## AWS CLI 支援的環境變數
<a name="envvars-list"></a>

 AWS CLI 支援下列環境變數。

**`AWS_ACCESS_KEY_ID`**  
指定與 IAM 帳戶相關聯的 AWS 存取金鑰。  
如果已定義，此環境變數會覆寫設定檔設定 `aws_access_key_id` 的數值。您無法使用命令列選項來指定存取金鑰 ID。

**`AWS_ACCOUNT_ID`**  
指定要用於對受支援 呼叫 AWS 的帳戶型端點 ID AWS 服務。如需帳戶型端點的詳細資訊，請參閱 [帳戶型端點](cli-configure-endpoints.md#endpoints-accountid)。  
此設定會覆寫 `aws\$1account\$1id` 設定。`AWS\$1ACCOUNT\$1ID\$1ENDPOINT\$1MODE` 環境變數或 `account\$1id\$1endpoint\$1mode` 設定必須設定為 `preferred` 或 `required`，才能使用此設定。  
**端點優先順序**  
端點組態設定位於多個位置，例如系統或使用者環境變數、本機 AWS 組態檔案，或在命令列上明確宣告為參數。會依特定順序 AWS CLI 檢查這些端點設定，並使用優先順序最高的端點設定。如需端點優先順序清單，請參閱[端點組態和設定優先順序](cli-configure-endpoints.md#endpoints-precedence)。

**`AWS_ACCOUNT_ID_ENDPOINT_MODE`**  
指定是否使用 AWS 帳戶型端點 IDs來呼叫支援的 AWS 服務。如需帳戶型端點的詳細資訊，請參閱 [帳戶型端點](cli-configure-endpoints.md#endpoints-accountid)。  
此設定可如下設定：  
+ **(預設)** **`preferred`** – 如果可用，端點應包含帳戶 ID。
+ **`disabled`** – 已解析的端點不包含帳戶 ID。
+ **`required`** – 端點必須包含帳戶 ID。如果帳戶 ID 無法使用，SDK 會擲出錯誤。
此設定會覆寫 `account\$1id\$1endpoint\$1mode` 設定。若要使用帳戶型端點，則必須在 `AWS\$1ACCOUNT\$1ID` 環境變數或 `aws\$1account\$1id` 設定中設定 ID。  
**端點優先順序**  
端點組態設定位於多個位置，例如系統或使用者環境變數、本機 AWS 組態檔案，或在命令列上明確宣告為參數。會依特定順序 AWS CLI 檢查這些端點設定，並使用優先順序最高的端點設定。如需端點優先順序清單，請參閱[端點組態和設定優先順序](cli-configure-endpoints.md#endpoints-precedence)。

**`AWS_CA_BUNDLE`**  
指定要用於 HTTPS 憑證驗證的憑證套件路徑。  
如果已定義，此環境變數會覆寫設定檔設定 `ca\$1bundle` 的數值。您可以使用 `--ca-bundle` 命令列參數來覆寫此環境變數。

**`AWS_CLI_AUTO_PROMPT`**  
啟用 第 2 AWS CLI 版的自動提示。有兩種設定可以使用：  
+ 在您每次嘗試執行 `aws` 命令時，**`on`** 都會使用完整的自動提示模式。這包括在完整的命令或不完整的命令之後按下 **ENTER**。
+ **`on-partial`** 使用部分自動提示模式。如果命令不完整或因用戶端驗證錯誤而無法執行，則會使用自動提示。如果您有預先存在的指令碼、Runbook，或是您只希望系統自動提示您不熟悉的命令 (而非針對每個命令發出提示)，這個模式就很有用。
如果已定義，此環境變數會覆寫 `cli\$1auto\$1prompt` 設定檔設定的數值。您可以使用 `--cli-auto-prompt` 及 `--no-cli-auto-prompt` 命令列參數來覆寫此環境變數。  
如需第 2 AWS CLI 版自動提示功能的詳細資訊，請參閱 [在 中啟用和使用命令提示字元 AWS CLI](cli-usage-parameters-prompting.md)。

**`AWS_CLI_FILE_ENCODING`**  
指定用於文字檔的編碼。預設情況下，編碼會與您的語言環境相符。若要設定與地區設定不同的編碼，請使用 `aws_cli_file_encoding` 環境變數。例如，如果您使用 Windows 的預設編碼 `CP1252`，則 `aws_cli_file_encoding=UTF-8` 設定會將 CLI 設定為使用 `UTF-8`。

**`AWS_CLI_HISTORY_FILE`**  
啟用`cli_history`此功能時，覆寫儲存命令歷史記錄的預設位置。預設路徑為 `~/.aws/cli/history/history.db`。您可以使用此變數來指定替代儲存位置。

**`AWS_CLI_S3_MV_VALIDATE_SAME_S3_PATHS`**  
使用 `s3 mv` 命令時如果來源和目的地儲存貯體相同，可以將來源檔案或物件移至其本身，這可能會導致意外刪除來源檔案或物件。`AWS_CLI_S3_MV_VALIDATE_SAME_S3_PATHS` 環境變數和 `--validate-same-s3-paths` 選項指定是否要驗證 Amazon S3 來源或目的地 URI 中的存取點 ARN 或存取點別名。  
`s3 mv` 的路徑驗證需要額外的 API 呼叫。

**`AWS_S3_DISABLE_EXPRESS_SESSION_AUTH`**  
是否停用 S3 Express 工作階段身分驗證。值必須是布林值。預設為 false。如果設定為 true，用戶端將不會使用 S3 Express 工作階段身分驗證。  
如果已定義，此環境變數會覆寫設定檔 S3 設定 的值`disable_s3_express_session_auth`。

**`AWS_CONFIG_FILE`**  
指定 AWS CLI 用來存放組態描述檔的檔案位置。預設路徑為 `~/.aws/config`。  
您無法在具名設定檔設定中或使用命令列參數來指定此數值。

**`AWS_DATA_PATH`**  
在載入 AWS CLI 資料`~/.aws/models`時，要在 的內建搜尋路徑之外檢查的其他目錄清單。設定此環境變數會指出回復內建搜尋路徑前需要先檢查的額外目錄。多個項目應使用 `os.pathsep` 字元分隔，在 Linux 或 macOS 上為 `:`，在 Windows 上則為 `;`。

**`AWS_DEFAULT_OUTPUT`**  
指定要使用的[輸出格式](cli-usage-output.md)。  
如果已定義，此環境變數會覆寫設定檔設定 `output` 的數值。您可以使用 `--output` 命令列參數來覆寫此環境變數。

**`AWS_DEFAULT_REGION`**  
根據預設， 會`Default region name`識別您要將請求傳送到其伺服器的 AWS 區域。這通常是最接近您的區域，但它可以是任何區域。例如，您可以輸入 `us-west-2` 來使用美國西部 (奧勒岡)。除非您在個別命令中另外指定，否則此為所有後續請求傳送到的區域。  
使用 時 AWS CLI，您必須明確或透過設定預設 AWS 區域來指定 區域。如需可用區域的清單，請參閱[區域和端點](https://docs.aws.amazon.com/general/latest/gr/rande.html)。所使用的區域指標 AWS CLI 與您在 AWS 管理主控台 URLs和服務端點中看到的名稱相同。
如果已定義，此環境變數會覆寫設定檔設定 `region` 的數值。您可以使用`--region`命令列參數和 AWS SDK 相容環境變數來覆寫此`AWS_REGION`環境變數。

**`AWS_EC2_METADATA_DISABLED`**  
停用 Amazon EC2 執行個體中繼資料服務 (IMDS)。  
如果設定為 true，則不會向 IMDS 要求使用者憑證或組態 (如區域)。

**`AWS_ENDPOINT_URL`**  
指定用於所有服務要求的端點。如需詳細資訊，請參閱[設定所有 的全域端點 AWS 服務](cli-configure-endpoints.md#endpoints-global)。  
**端點優先順序**  
端點組態設定位於多個位置，例如系統或使用者環境變數、本機 AWS 組態檔案，或在命令列上明確宣告為參數。會依特定順序 AWS CLI 檢查這些端點設定，並使用優先順序最高的端點設定。如需端點優先順序清單，請參閱[端點組態和設定優先順序](cli-configure-endpoints.md#endpoints-precedence)。

**`AWS_ENDPOINT_URL_<SERVICE>`**  
指定用於特定服務的自訂端點，其中 `<SERVICE>` 以 AWS 服務 識別符取代。例如， Amazon DynamoDB 的 `serviceId` [https://github.com/boto/botocore/blob/bcaf618c4b93c067efa0b85d3e92f3985ff60906/botocore/data/dynamodb/2012-08-10/service-2.json#L10](https://github.com/boto/botocore/blob/bcaf618c4b93c067efa0b85d3e92f3985ff60906/botocore/data/dynamodb/2012-08-10/service-2.json#L10)。對於此服務，端點 URL 環境變數為 `AWS_ENDPOINT_URL_DYNAMODB`。  
如需所有服務特定環境變數的清單，請參閱 [服務特定識別碼清單](cli-configure-endpoints.md#endpoints-service-specific-table)。  
**端點優先順序**  
端點組態設定位於多個位置，例如系統或使用者環境變數、本機 AWS 組態檔案，或在命令列上明確宣告為參數。會依特定順序 AWS CLI 檢查這些端點設定，並使用優先順序最高的端點設定。如需端點優先順序清單，請參閱[端點組態和設定優先順序](cli-configure-endpoints.md#endpoints-precedence)。

**`AWS_IGNORE_CONFIGURED_ENDPOINT_URLS`**  
如果啟用， 會 AWS CLI 忽略所有自訂端點組態。有效值為 `true` 和 `false`。如需詳細資訊，請參閱[設定所有 的全域端點 AWS 服務](cli-configure-endpoints.md#endpoints-global)。  
端點組態設定位於多個位置，例如系統或使用者環境變數、本機 AWS 組態檔案，或在命令列上明確宣告為參數。如需端點優先順序，請參閱[端點組態和設定優先順序](cli-configure-endpoints.md#endpoints-precedence)。  
**端點優先順序**  
端點組態設定位於多個位置，例如系統或使用者環境變數、本機 AWS 組態檔案，或在命令列上明確宣告為參數。會依特定順序 AWS CLI 檢查這些端點設定，並使用優先順序最高的端點設定。如需端點優先順序清單，請參閱[端點組態和設定優先順序](cli-configure-endpoints.md#endpoints-precedence)。

**[`AWS_MAX_ATTEMPTS`](cli-configure-files.md#cli-config-max_attempts)**  
指定重試 AWS CLI 處理常式使用的最大重試次數值，其中初始呼叫會計入您提供的值。如需有關重試的詳細資訊，請參閱 [AWS CLI 中的重試次數 AWS CLI](cli-configure-retries.md)。  
如果已定義，此環境變數會覆寫設定檔設定 `max_attempts` 的數值。

**`AWS_METADATA_SERVICE_NUM_ATTEMPTS`**  
嘗試在已設定 IAM 角色的 Amazon EC2 執行個體上擷取登入資料時， 會 AWS CLI 嘗試在停止之前從執行個體中繼資料服務擷取登入資料一次。如果您知道自己的程式碼將在 Amazon EC2 執行個體上執行，您可以增加這個值，讓 AWS CLI 在放棄之前多重新嘗試幾次。

**`AWS_METADATA_SERVICE_TIMEOUT`**  
執行個體中繼資料服務連線逾時前的秒數。嘗試在已設定 IAM 角色的 Amazon EC2 執行個體上擷取憑證時，執行個體中繼資料服務連線預設為 1 秒之後逾時。如果您知道自己在已設定 IAM 角色的 Amazon EC2 執行個體上執行，您可以視需要增加這個值。

**[`AWS_PAGER`](cli-configure-files.md#cli-config-cli_pager)**  
指定用於輸出的分頁程式。根據預設，第 2 AWS CLI 版會透過作業系統的預設分頁程式傳回所有輸出。  
若要停用所有外部分頁程式，請將變數設定為空字串。  
如果已定義，此環境變數會覆寫設定檔設定 `cli_pager` 的數值。

**[`AWS_PROFILE`](cli-configure-files.md#cli-configure-files-using-profiles)**  
指定 AWS CLI 設定檔的名稱，其中包含要使用的登入資料和選項。這可以是在 `credentials` 或 `config` 檔案中存放的描述檔名稱，或數值 `default` 以使用預設描述檔。  
如果您定義此環境變數，它將覆寫使用組態檔中名為 `[default]` 之描述檔的行為。您可以使用 `--profile` 命令列參數來覆寫此環境變數。

**`AWS_REGION`**  
開發套件 AWS AWS 相容的環境變數，指定要傳送請求的 區域。  
如果已定義，此環境變數會覆寫環境變數 `AWS_DEFAULT_REGION` 及設定檔設定 `region` 的數值。您可以使用 `--region` 命令列參數來覆寫此環境變數。

**`AWS_REQUEST_CHECKSUM_CALCULATION`**  
指定何時計算請求承載的檢查總和，選項如下：  
+ `when_supported` – **(預設)** 當操作在其服務模型中指定檢查總和演算法或需要請求檢查總和時，會計算請求承載檢查總和。
+ `when_required` – 當操作需要請求檢查總和，或使用者提供由 AWS 服務建模的 `requestAlgorithmMember` 時，系統會計算請求承載檢查總和。
如果已定義，此環境變數會覆寫設定檔設定 [`request_checksum_calculation`](cli-configure-files.md#cli-config-request_checksum_calculation) 的數值。

**`AWS_RESPONSE_CHECKSUM_VALIDATION`**  
指定何時執行回應承載的檢查總和驗證，選項如下：  
+ `when_supported` – **（預設）** 當 操作在其 AWS CLI 支援的服務模型中指定回應演算法時，會執行回應承載檢查總和驗證。
+ `when_required` – 當 操作在其 AWS CLI 支援的服務模型中指定回應演算法，而且您在操作輸入`ENABLED`中將模型設定為 `requestValidationModeMember` 時，就會執行回應承載檢查總和驗證。
如果已定義，此環境變數會覆寫設定檔設定 [`response_checksum_validation`](cli-configure-files.md#cli-config-response_checksum_validation) 的數值。

**[`AWS_RETRY_MODE`](cli-configure-files.md#cli-config-retry_mode)**  
指定使用哪種重試模式 AWS CLI 。有三種可用的重試模式：傳統 (預設)、標準和自適應。如需有關重試的詳細資訊，請參閱 [AWS CLI 中的重試次數 AWS CLI](cli-configure-retries.md)。  
如果已定義，此環境變數會覆寫設定檔設定 `retry_mode` 的數值。

**`AWS_ROLE_ARN`**  
使用您要用來執行 AWS CLI 命令的 Web 身分提供者，指定 IAM 角色的 Amazon Resource Name (ARN)。  
與 `AWS_WEB_IDENTITY_TOKEN_FILE` 及 `AWS_ROLE_SESSION_NAME` 環境變數搭配使用。  
如果已定義，此環境變數會覆寫設定檔設定 [`role_arn`](cli-configure-files.md#cli-config-role_arn) 的數值。您無法將角色工作階段名稱指定為命令列參數。  
此環境變數目前僅適用於具有 Web 身分提供者的擔任角色，並不適用一般擔任角色提供者組態。
如需使用 Web 身分的詳細資訊，請參閱 [擔任具有 Web 身分的角色](cli-configure-role.md#cli-configure-role-oidc)。

**`AWS_ROLE_SESSION_NAME`**  
指定要連接到角色工作階段的名稱。此值會在 AWS CLI 呼叫 `AssumeRole`操作時提供給 `RoleSessionName` 參數，並成為擔任角色使用者 ARN 的一部分：` arn:aws:sts::123456789012:assumed-role/role_name/role_session_name`。這是選擇性的參數。若您未提供此數值，將會自動產生工作階段名稱。此名稱會出現在與此工作階段相關聯的項目 AWS CloudTrail 日誌中。  
如果已定義，此環境變數會覆寫設定檔設定 [`role_session_name`](cli-configure-files.md#cli-config-role_session_name) 的數值。  
與 `AWS_ROLE_ARN` 及 `AWS_WEB_IDENTITY_TOKEN_FILE` 環境變數搭配使用。  
如需使用 Web 身分的詳細資訊，請參閱 [擔任具有 Web 身分的角色](cli-configure-role.md#cli-configure-role-oidc)。  
此環境變數目前僅適用於具有 Web 身分提供者的擔任角色，並不適用一般擔任角色提供者組態。

**`AWS_SDK_UA_APP_ID`**  
單一 AWS 帳戶 可供多個客戶應用程式用來呼叫 AWS 服務。應用程式 ID 會識別哪些來源應用程式使用 AWS 服務. AWS SDKs和 服務進行一組呼叫，不使用或解譯此值，而不是在客戶通訊中將其呈現。例如，此值可以包含在操作電子郵件中，以唯一識別哪些應用程式與通知相關聯。  
預設為沒有值。  
應用程式 ID 是字串，長度上限為 50 個字元。允許使用字母、數字以及下列特殊字元：  

```
! $ % & * + - . , ^ _ ` | ~
```
如果已定義，此環境變數會覆寫設定檔設定 [`sdk_ua_app_id`](cli-configure-files.md#cli-config-sdk_ua_app_id) 的數值。您不能將應用程式 ID 指定為命令列選項。

**`AWS_SECRET_ACCESS_KEY`**  
指定與存取金鑰相關聯的私密金鑰。這基本上是存取金鑰的「密碼」。  
如果已定義，此環境變數會覆寫設定檔設定 `aws_secret_access_key` 的數值。您不能將私密存取金鑰 ID 指定為命令列選項。

**`AWS_SESSION_TOKEN`**  
指定當您直接從 AWS STS 作業擷取的暫時安全憑證時需要的工作階段字符值。如需詳細資訊，請參閱*AWS CLI 命令參考*中的[擔任角色命令的輸出部分](https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role.html#output)。  
如果已定義，此環境變數會覆寫設定檔設定 `aws_session_token` 的數值。

**`AWS_SHARED_CREDENTIALS_FILE`**  
指定 AWS CLI 用來存放存取金鑰的檔案位置。預設路徑為 `~/.aws/credentials`。  
您無法在具名設定檔設定中或使用命令列參數來指定此數值。

**`AWS_SIGV4A_SIGNING_REGION_SET`**  
使用逗號分隔清單來指定透過 SigV4a 簽署時要使用的區域。如果未設定此變數， AWS CLI 會使用 使用的預設值 AWS 服務。如果 AWS 服務 沒有預設值，則請求簽章會在使用 值的所有區域中生效`*`。  
如需 SigV4a 的詳細資訊，請參閱《IAM 使用者指南》**中的 [API 請求的AWS Signature 第 4 版](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html)。  
如果已定義，此環境變數會覆寫設定檔設定 [`sigv4a_signing_region_set`](cli-configure-files.md#cli-config-sigv4a_signing_region_set) 的數值。

**`AWS_USE_DUALSTACK_ENDPOINT`**  
使用雙堆疊端點傳送 AWS 請求。若要進一步了解支援 IPv4 和 IPv6 流量的雙堆疊端點，請參閱《Amazon Simple Storage Service 使用者指南》**中的[使用 Amazon S3 雙堆疊端點](https://docs.aws.amazon.com/AmazonS3/latest/userguide/dual-stack-endpoints.html)。雙堆疊端點適用於部分區域的某些服務。如果服務或 不存在雙堆疊端點 AWS 區域，請求會失敗。此選項根據預設為停用。如需詳細資訊，請參閱[設定為對所有 使用雙堆疊端點 AWS 服務](cli-configure-endpoints.md#endpoints-dual-stack)。  
**端點優先順序**  
端點組態設定位於多個位置，例如系統或使用者環境變數、本機 AWS 組態檔案，或在命令列上明確宣告為參數。會依特定順序 AWS CLI 檢查這些端點設定，並使用優先順序最高的端點設定。如需端點優先順序清單，請參閱[端點組態和設定優先順序](cli-configure-endpoints.md#endpoints-precedence)。

**`AWS_USE_FIPS_ENDPOINT`**  
有些 AWS 服務提供端點，支援[聯邦資訊處理標準 (FIPS) 140-2](https://aws.amazon.com/compliance/fips/) AWS 區域。 AWS 服務支援 FIPS 時，此設定會指定 AWS CLI 應使用的 FIPS 端點。與標準 AWS 端點不同，FIPS 端點使用符合 FIPS 140-2 的 TLS 軟體程式庫。會與美國政府互動的企業可能需要這些端點。如需詳細資訊，請參閱 [設定為對所有 使用 FIPs端點 AWS 服務](cli-configure-endpoints.md#endpoints-fips)。  
如果啟用此設定，但 服務不存在 FIPS 端點 AWS 區域，則 AWS 命令可能會失敗。在此情況下，請使用 `--endpoint-url` 選項或使用[服務特定端點](cli-configure-endpoints.md#endpoints-service-specific)手動指定要在命令中使用的端點。  
**端點優先順序**  
端點組態設定位於多個位置，例如系統或使用者環境變數、本機 AWS 組態檔案，或在命令列上明確宣告為參數。會依特定順序 AWS CLI 檢查這些端點設定，並使用優先順序最高的端點設定。如需端點優先順序清單，請參閱[端點組態和設定優先順序](cli-configure-endpoints.md#endpoints-precedence)。

**[`AWS_WEB_IDENTITY_TOKEN_FILE`](#cli-configure-envvars)**  
指定檔案的路徑，其包含由身分提供者提供的 OAuth 2.0 存取字符或 OpenID Connect ID 字符。 AWS CLI 會載入此檔案的內容，並將其作為 `WebIdentityToken` 引數傳遞至 `AssumeRoleWithWebIdentity` 操作。  
與 `AWS_ROLE_ARN` 及 `AWS_ROLE_SESSION_NAME` 環境變數搭配使用。  
如果已定義，此環境變數會覆寫設定檔設定 `web_identity_token_file` 的數值。  
如需使用 Web 身分的詳細資訊，請參閱 [擔任具有 Web 身分的角色](cli-configure-role.md#cli-configure-role-oidc)。  
此環境變數目前僅適用於具有 Web 身分提供者的擔任角色，並不適用一般擔任角色提供者組態。

# 中的命令列選項 AWS CLI
<a name="cli-configure-options"></a>

在 中 AWS CLI，命令列選項是全域參數，可用來覆寫該單一命令的預設組態設定、任何對應的設定檔設定或環境變數設定。您無法使用命令列選項來直接指定憑證，但可指定要使用的描述檔。

**Topics**
+ [如何使用命令列選項](#cli-configure-options-how)
+ [AWS CLI 支援的全域命令列選項](#cli-configure-options-list)
+ [命令列選項的常見用途](#cli-configure-options-common)

## 如何使用命令列選項
<a name="cli-configure-options-how"></a>

大多數命令列選項都是簡單的字串，例如下列範例中的設定檔名稱 `profile1`：

```
$ aws s3 ls --profile profile1
amzn-s3-demo-bucket1
amzn-s3-demo-bucket2
...
```

每個接受引數的選項需要有空格或等號 (=) 來隔開引數與選項名稱。如果引數值是包含空格的字串，則您必須使用引號括住引數。如需關於參數類型和參數格式的詳細資訊，請參閱 [在 AWS CLI 中指定參數值](cli-usage-parameters.md)。

## AWS CLI 支援的全域命令列選項
<a name="cli-configure-options-list"></a>

在 中 AWS CLI ，您可以使用下列命令列選項來覆寫該單一命令的預設組態設定、任何對應的設定檔設定或環境變數設定。

**--ca-bundle *<string>***  
指定在驗證 SSL 憑證時使用的憑證授權機構 (CA) 憑證套件。  
如果已定義，此選項會覆寫設定檔設定 `ca\$1bundle` 的數值及 `AWS\$1CA\$1BUNDLE` 環境變數。

**--cli-auto-prompt**  
啟用單一命令的自動提示模式。如下列範例所示，您隨時都能指定它。  

```
$ aws --cli-auto-prompt
$ aws dynamodb --cli-auto-prompt
$ aws dynamodb describe-table --cli-auto-prompt
```
此選項會覆寫 `aws\$1cli\$1auto\$1prompt` 環境變數及 `cli\$1auto\$1prompt` 設定檔設定。  
如需第 2 AWS CLI 版自動提示功能的詳細資訊，請參閱 [在 中啟用和使用命令提示字元 AWS CLI](cli-usage-parameters-prompting.md)。

**--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\$1binary\$1format` 檔案組態設定。  

```
$ 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)，通訊端連線會無限期等待 (凍結) 且不逾時。預設值為 60 秒。

**--cli-read-timeout *<integer>***  
指定通訊端讀取時間上限 (以秒為單位)。如果數值設為零 (0)，通訊端讀取會無限期等待 (凍結) 且不逾時。預設值為 60 秒。

**--color *<string>***  
指定支援彩色輸出。有效值為 `on`、`off` 和 `auto`。預設值為 `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
```

**--endpoint-url *<string>***  
指定請求送往的 URL。對於大多數命令， 會根據選取的服務和指定的 AWS 區域 AWS CLI 自動判斷 URL。但部分命令需要您指定帳戶專屬的 URL。您也可以設定一些 AWS 服務直接[在您的私有 VPC 中託管端點](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html#what-is-privatelink)，然後可能需要指定。  
下列命令範例使用自訂的 Amazon S3 端點 URL。  

```
$ aws s3 ls --endpoint-url http://localhost:4567
```
**端點優先順序**  
端點組態設定位於多個位置，例如系統或使用者環境變數、本機 AWS 組態檔案，或在命令列上明確宣告為參數。會依特定順序 AWS CLI 檢查這些端點設定，並使用優先順序最高的端點設定。如需端點優先順序清單，請參閱[端點組態和設定優先順序](cli-configure-endpoints.md#endpoints-precedence)。

**--no-cli-auto-prompt**  
停用單一命令的自動提示模式。  

```
$ aws dynamodb describe-table --table-name Table1 --no-cli-auto-prompt
```
此選項會覆寫 `aws\$1cli\$1auto\$1prompt` 環境變數及 `cli\$1auto\$1prompt` 設定檔設定。  
如需第 2 AWS CLI 版自動提示功能的詳細資訊，請參閱 [在 中啟用和使用命令提示字元 AWS CLI](cli-usage-parameters-prompting.md)。

**--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 憑證錯誤](cli-chap-troubleshooting.md#tshoot-certificate-verify-failed)。

**--output *<string>***  
指定要用於此命令的輸出格式。您可以指定下列任何數值：  
+ **[`json`](cli-usage-output-format.md#json-output)** – 輸出的格式為 [JSON](https://json.org/) 字串。
+  **[`yaml`](cli-usage-output-format.md#yaml-output)** – 輸出的格式為 [YAML](https://yaml.org/) 字串。
+ **[`yaml-stream`](cli-usage-output-format.md#yaml-stream-output)** – 輸出採用串流方式且格式為 [YAML](https://yaml.org/) 字串。串流可加速處理大型資料類型。
+ **[`text`](cli-usage-output-format.md#text-output)** – 輸出的格式是多行以 Tab 分隔的字串值。這對於將輸出傳遞給文字處理器 (如 `grep`、`sed` 或 `awk`) 非常有用。
+ **[`table`](cli-usage-output-format.md#table-output)** – 輸出的格式為使用字元 \$1\$1- 形成儲存格框線的表格。它通常以「方便人類使用」的格式來呈現資訊，這種格式比其他格式更容易閱讀，但在編寫程式方面較不有用。
+ **[`off`](cli-usage-output-format.md#off-output)** – 輸出會隱藏 stdout 的所有命令輸出。這在自動化指令碼和 CI/CD 管道中非常有用，您只需檢查命令的結束程式碼，而無需處理輸出。

**--profile *<string>***  
指定要用於此命令的[具名描述檔](cli-configure-files.md#cli-configure-files-using-profiles)。若需設置額外的具名描述檔，您可以使用 `aws configure` 命令搭配 `--profile` 選項。  

```
$ aws configure --profile <profilename>
```

**--query *<string>***  
指定 [JMESPath 查詢](https://jmespath.org/)以用於篩選回應資料。如需詳細資訊，請參閱 [在 中篩選輸出 AWS CLI](cli-usage-filter.md)。

**--region *<string>***  
指定 AWS 要傳送此命令 AWS 請求的區域。如需您可指定之所有區域和端點的清單，請參閱 *Amazon Web Services 一般參考* 中的 [AWS 區域與端點](https://docs.aws.amazon.com/general/latest/gr/rande.html)。

**--version**  
布林值開關，顯示正在執行之 AWS CLI 程式的目前版本。

## 命令列選項的常見用途
<a name="cli-configure-options-common"></a>

命令列選項的常見用途包括在多個 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                                       |||
...
```

# 在 中設定命令完成 AWS CLI
<a name="cli-configure-completion"></a>

 AWS Command Line Interface (AWS CLI) 包含與 bash 相容的命令完成功能，可讓您使用 **Tab** 鍵來完成部分輸入的命令。您需要在大多數系統上手動設定此功能。

如需 第 2 AWS CLI 版自動提示功能的資訊，請參閱 [在 中啟用和使用命令提示字元 AWS CLI](cli-usage-parameters-prompting.md)。

**Topics**
+ [運作方式](#cli-command-completion-about)
+ [在 Linux 或 macOS 上設定命令完成](#cli-command-completion-linux)
+ [在 Windows 上設定命令完成](#cli-command-completion-windows)

## 運作方式
<a name="cli-command-completion-about"></a>

當您輸入命令、參數或選項的部分內容時，命令完成功能會自動完成您的命令，或顯示建議的命令清單。若要提示命令完成，請輸入命令的部分內容，然後按下完成鍵 (在大部分 Shell 中通常為 *Tab*)。

下列範例示範命令完成功能的不同使用方式：
+ 輸入命令的部分內容，然後按 *Tab* 以顯示建議的命令清單。

  ```
  $ aws dynamodb dTAB
  delete-backup                        describe-global-table
  delete-item                          describe-global-table-settings
  delete-table                         describe-limits
  describe-backup                      describe-table
  describe-continuous-backups          describe-table-replica-auto-scaling
  describe-contributor-insights        describe-time-to-live
  describe-endpoints
  ```
+ 輸入參數的部分內容，然後按 *Tab* 以顯示建議的參數清單。

  ```
  $ aws dynamodb delete-table --TAB
  --ca-bundle              --endpoint-url           --profile              
  --cli-connect-timeout    --generate-cli-skeleton  --query                
  --cli-input-json         --no-paginate            --region               
  --cli-read-timeout       --no-sign-request        --table-name           
  --color                  --no-verify-ssl          --version              
  --debug                  --output
  ```
+ 輸入參數，然後按 *Tab* 以顯示建議的資源值清單。此功能僅適用於 第 2 AWS CLI 版。

  ```
  $ aws dynamodb delete-table --table-name TAB
  Table 1                  Table 2                  Table 3
  ```

## 在 Linux 或 macOS 上設定命令完成
<a name="cli-command-completion-linux"></a>

若要在 Linux 或 macOS 上設定命令完成，您必須知道正在使用的 Shell 名稱及 `aws_completer` 指令碼的位置。

**注意**  
在執行 Amazon Linux 的 Amazon EC2 執行個體上，預設會自動設定和啟用命令完成。

**Topics**
+ [確認完成標籤的資料夾位於您的路徑中](#cli-command-completion-path)
+ [啟用命令完成](#cli-command-completion-enable)
+ [驗證命令完成](#cli-command-completion-test)

### 確認完成標籤的資料夾位於您的路徑中
<a name="cli-command-completion-path"></a>

若要讓 AWS 完成器成功運作， `aws_completer` 必須在 shell 的路徑中。`which` 命令可以檢查完成標籤是否位於您的路徑中。

```
$ which aws_completer
/usr/local/bin/aws_completer
```

如果該命令找不到完成標籤，請使用下列步驟將完成標籤的資料夾新增到您的路徑中。

#### 步驟 1：尋找 AWS 完成者
<a name="cli-command-completion-locate"></a>

 AWS 完成器的位置可能會因使用的安裝方法而有所不同。
+ **Package Manager** - 如 `pip`、`yum`、 `brew`和 等程式`apt-get`通常會將 AWS 完成器 （或與其的符號連結） 安裝到標準路徑位置。
  + 如果您使用的是**不含** `--user` 參數的 `pip`，預設路徑為 `/usr/local/bin/aws_completer`。
  + 如果您使用的是**包含** `--user` 參數的 `pip`，預設路徑為 `/home/username/.local/bin/aws_completer`。
+ **Bundled Installer** – 如果您使用的是 Bundled Installer，預設路徑為 `/usr/local/bin/aws_completer`。

如果所有其他失敗，您可以使用 `find`命令來搜尋檔案系統是否有 AWS 完成程式。

```
$ find / -name aws_completer
/usr/local/bin/aws_completer
```

#### 步驟 2：識別您的 Shell
<a name="cli-command-completion-shell"></a>

若要識別您使用的是哪一種 Shell，您可以利用下列其中一個命令。
+ **echo \$1SHELL** – 會顯示 Shell 的程式檔案名稱。這通常符合使用中的 Shell 名稱，除非您在登入之後啟動了不同的 Shell。

  ```
  $ echo $SHELL
  /bin/bash
  ```
+ **ps** – 會顯示目前使用者正在執行的程序。其中一個是 Shell。

  ```
  $ ps
    PID TTY          TIME CMD
   2148 pts/1    00:00:00 bash
   8756 pts/1    00:00:00 ps
  ```

#### 步驟 3：將完成標籤新增到您的路徑
<a name="cli-command-completion-path-add"></a>

1. 在您的使用者資料夾中尋找 Shell 的描述檔指令碼。

   ```
   $ ls -a ~/
   .  ..  .bash_logout  .bash_profile  .bashrc  Desktop  Documents  Downloads
   ```
   + **Bash** – `.bash_profile`、`.profile` 或 `.bash_login`
   + **Zsh** – `.zshrc`
   + **Tcsh** – `.tcshrc`、`.cshrc` 或 `.login`

1. 在設定檔尾端新增匯出命令，類似於以下範例。將 `/usr/local/bin/` 換成您在上一節探索到的資料夾。

   ```
   export PATH=/usr/local/bin/:$PATH
   ```

1. 將描述檔重新載入到目前的工作階段，讓這些變更生效。將 `.bash_profile` 換成您在第一節探索到的 Shell 指令碼的名稱。

   ```
   $ source ~/.bash_profile
   ```

### 啟用命令完成
<a name="cli-command-completion-enable"></a>

在確認完成標籤位於您的路徑中後，請為您正在使用的 Shell 執行適當的命令，從而啟用命令完成。您可以新增命令到 Shell 的設定檔，以在每次開啟新 Shell 時執行該檔案。在每個命令中，將 */usr/local/bin/* 路徑取代為 [確認完成標籤的資料夾位於您的路徑中](#cli-command-completion-path) 中在您系統上找到的路徑。
+ **`bash`** - 使用內建命令 `complete`。

  ```
  $ complete -C '/usr/local/bin/aws_completer' aws
  ```

  新增先前的命令到 `~/.bashrc`，以在每次開啟新 Shell 時執行該檔案。您的 `~/.bash_profile` 應指定 `~/.bashrc` 的來源，以確保命令也會在登入 Shell 中執行。
+  **`zsh`** – 若要執行命令完成，您必須將下列自動載入行加到 `~/.zshrc` 設定檔指令碼末尾，以執行 `bashcompinit`。

  ```
  $ autoload bashcompinit && bashcompinit
  $ autoload -Uz compinit && compinit
  ```

  若要啟用命令完成，請使用內建命令 `complete`。

  ```
  $ complete -C '/usr/local/bin/aws_completer' aws
  ```

  新增先前的命令到 `~/.zshrc`，以在每次開啟新 Shell 時執行該檔案。
+  **`tcsh`** - `tcsh` 的完成採用文字類型及模式來定義完成行為。

  ```
  > complete aws 'p/*/`aws_completer`/'
  ```

  新增先前的命令到 `~/.tcshrc`，以在每次開啟新 Shell 時執行該檔案。

啟用命令完成後，[驗證命令完成](#cli-command-completion-test) 開始運作。

### 驗證命令完成
<a name="cli-command-completion-test"></a>

啟用命令完成之後，請重新載入您的 Shell、輸入命令的部分文字並按下 **Tab**，即可查看可用的命令。

```
$ aws sTAB
s3              ses             sqs             sts             swf
s3api           sns             storagegateway  support
```

## 在 Windows 上設定命令完成
<a name="cli-command-completion-windows"></a>

**注意**  
有關 PowerShell 如何處理完成的資訊，包括完成時使用的各種操作鍵，請參閱 *Microsoft PowerShell 文件*中的 [about\$1Tab\$1Expansion](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_tab_expansion)。

若要在 Windows 上為 PowerShell 啟用命令完成，請在 PowerShell 中完成下列步驟。

1. 使用下列命令開啟您的 `$PROFILE`。

   ```
   PS C:\> Notepad $PROFILE
   ```

   如果您沒有 `$PROFILE`，請使用下列命令建立使用者描述檔。

   ```
   PS C:\> if (!(Test-Path -Path $PROFILE ))
   { New-Item -Type File -Path $PROFILE -Force }
   ```

   如需 PowerShell 設定檔的詳細資訊，請參閱 *Microsoft Docs* 網站上的[如何在 Windows PowerShell ISE 中使用設定檔](https://docs.microsoft.com/en-us/powershell/scripting/windows-powershell/ise/how-to-use-profiles-in-windows-powershell-ise)。

1. 若要啟用命令完成，請將下列程式碼區塊新增至您的設定檔，然後儲存並關閉檔案。

   ```
   Register-ArgumentCompleter -Native -CommandName aws -ScriptBlock {
       param($commandName, $wordToComplete, $cursorPosition)
           $env:COMP_LINE=$wordToComplete
           if ($env:COMP_LINE.Length -lt $cursorPosition){
               $env:COMP_LINE=$env:COMP_LINE + " "
           }
           $env:COMP_POINT=$cursorPosition
           aws_completer.exe | ForEach-Object {
               [System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterValue', $_)
           }
           Remove-Item Env:\COMP_LINE     
           Remove-Item Env:\COMP_POINT  
   }
   ```

1. 啟用命令完成之後，請重新載入您的 Shell、輸入命令的部分文字並按下 **Tab**，以循環查看可用的命令。

   ```
   $ aws sTab
   ```

   ```
   $ aws s3
   ```

   若要查看完成結果適用的所有可用命令，請輸入部分命令，然後按 **Ctrl** \$1 **Space**。

   ```
   $ aws sCtrl + Space
   s3              ses             sqs             sts             swf
   s3api           sns             storagegateway  support
   ```

# AWS CLI 中的重試次數 AWS CLI
<a name="cli-configure-retries"></a>

本主題說明 可能如何 AWS CLI 看到 AWS 服務呼叫因非預期問題而失敗。這些問題可能會發生在伺服器端，也可能會因為您嘗試呼叫的 AWS 服務受到速率限制而失敗。這些種類的失敗通常不需要特殊處理，因為通常在短暫的等待時間後會自動再次進行呼叫。 AWS CLI 提供許多功能，可協助用戶端在遇到這類錯誤或例外狀況時重試對 AWS 服務的呼叫。

**Topics**
+ [可用的重試模式](#cli-usage-retries-modes)
+ [設定重試模式](#cli-usage-retries-configure)
+ [檢視重試嘗試的記錄](#cli-usage-retries-validate)

## 可用的重試模式
<a name="cli-usage-retries-modes"></a>

**Topics**
+ [標準重試模式 (預設)](#cli-usage-retries-modes-standard.title)
+ [舊式重試模式](#cli-usage-retries-legacy)
+ [自適應重試模式](#cli-usage-retries-modes-adaptive)

### 標準重試模式 (預設)
<a name="cli-usage-retries-modes-standard.title"></a>

`Standard` 模式是跨 AWS SDKs，具有比舊版更多的功能，預設模式是 的預設模式 AWS CLI。標準模式是針對第 2 AWS CLI 版建立的，並回溯到第 1 AWS CLI 版。標準模式的功能包含：
+ 預設值 2 表示的是重試嘗試次數上限，總共允許嘗試 3 次呼叫。此數值可透過 `max_attempts` 組態參數加以覆寫。
+ 適用於下列展開清單中錯誤/例外狀況的重試嘗試次數：
  + 暫時性錯誤/例外狀況
    + `RequestTimeout` 
    + `RequestTimeoutException` 
    + `PriorRequestNotComplete` 
    + `ConnectionError`
    + `HTTPClientError` 
  + 服務端調節/限制錯誤及例外狀況：
    + `Throttling`
    + `ThrottlingException`
    + `ThrottledException`
    + `RequestThrottledException`
    + `TooManyRequestsException`
    + `ProvisionedThroughputExceededException`
    + `TransactionInProgressException` 
    + `RequestLimitExceeded` 
    + `BandwidthLimitExceeded`
    + `LimitExceededException`
    + `RequestThrottled`
    + `SlowDown`
    + `EC2ThrottledException` 
+ 對非描述性、暫時性錯誤代碼的重試嘗試次數。特別是下列 HTTP 狀態碼：500、502、503、504。
+ 任何重試嘗試都會包含基本係數為 2 的指數退避，且退避時間最長為 20 秒。

### 舊式重試模式
<a name="cli-usage-retries-legacy"></a>

`Legacy` 模式使用較舊的重試處理常式，其有限的功能包含：
+ 預設值 4 表示的是重試嘗試次數上限，總共允許嘗試 5 次呼叫。此數值可透過 `max_attempts` 組態參數加以覆寫。
+ DynamoDB 中的預設值 9 表示的是重試嘗試次數上限，總共允許嘗試 10 次呼叫。此數值可透過 `max_attempts` 組態參數加以覆寫。
+ 適用於下列有限數量的錯誤/例外狀況的重試嘗試次數：
  + 一般通訊埠/連線錯誤：
    + `ConnectionError`
    + `ConnectionClosedError`
    + `ReadTimeoutError`
    + `EndpointConnectionError`
  + 服務端調節/限制錯誤及例外狀況：
    + `Throttling`
    + `ThrottlingException`
    + `ThrottledException`
    + `RequestThrottledException`
    + `ProvisionedThroughputExceededException`
+ 數個 HTTP 狀態碼 (包括 429、500、502、503、504 及 509) 上的重試嘗試次數。
+ 任何重試嘗試都會包含基本係數為 2 的指數退避。

### 自適應重試模式
<a name="cli-usage-retries-modes-adaptive"></a>

**警告**  
自適應模式是一種實驗模式，且功能及行為會隨時變更。

`Adaptive` 重試模式是一種實驗性重試模式，其中包含標準模式的所有功能。除了標準模式功能之外，自適應模式還會透過使用字符儲存貯體和每次重試嘗試時會動態更新的速率限制變數，引進用戶端速率限制。此模式為用戶端重試提供靈活彈性，可適應來自 AWS 服務的錯誤/例外狀況狀態回應。

在每次新的重試嘗試時，適應性模式會根據 AWS 服務回應中呈現的錯誤、例外狀況或 HTTP 狀態碼來修改速率限制變數。之後，這些速率限制變數會用於計算用戶端的新呼叫速率。來自 AWS 服務的每個例外狀況/錯誤或非成功 HTTP 回應 (在上方清單中提供) 會在重試發生時更新速率限制變數，直到重試成功、字符儲存貯體用盡或達到設定嘗試數值的上限為止。

## 設定重試模式
<a name="cli-usage-retries-configure"></a>

 AWS CLI 包含各種重試組態，以及建立用戶端物件時要考慮的組態方法。

### 可用組態方法
<a name="cli-usage-retries-configure-options"></a>

在 中 AWS CLI，使用者可以使用下列方式設定重試：
+ 環境變數
+ AWS CLI 組態檔案

使用者可以自訂以下重試選項：
+ 重試模式 - 指定 AWS CLI 使用的重試模式。如前所述，有三種可用的重試模式：傳統、標準及自適應。AWS CLI 2 是標準值。
+ 最大嘗試次數 - 指定 AWS CLI 重試處理常式使用的最大重試次數值，其中初始呼叫會計入您提供的值。預設值取決於您的重試模式。

### 在環境變數中定義重試組態
<a name="cli-usage-retries-configure-envvar"></a>

若要定義 的重試組態 AWS CLI，請更新作業系統的環境變數。

重試環境變數是：
+ `AWS_RETRY_MODE`
+ `AWS_MAX_ATTEMPTS`

如需環境變數的詳細資訊，請參閱 [設定 的環境變數 AWS CLI](cli-configure-envvars.md)。

### 在組態檔案中定義重試 AWS 組態
<a name="cli-usage-retries-configure-file"></a>

若要變更您的重試組態，請更新您的全域 AWS 組態檔案。 AWS 組態檔案的預設位置為 \$1/.aws/config。

以下是 AWS 組態檔案的範例：

```
[default]
retry_mode = standard
max_attempts = 6
```

如需有關組態檔案的詳細資訊，請參閱 [中的組態和登入資料檔案設定 AWS CLI](cli-configure-files.md)。

## 檢視重試嘗試的記錄
<a name="cli-usage-retries-validate"></a>

 AWS CLI 使用 Boto3 的重試方法和記錄。您可以針對任何命令，使用 `--debug` 選項來接收偵錯記錄。如需如何使用 `--debug` 選項的相關資訊，請參閱 [中的命令列選項 AWS CLI](cli-configure-options.md)。

如果您在偵錯記錄中搜尋「retry」，就能找到所需的重試資訊。重試嘗試的用戶端記錄項目視您已啟用的重試模式而定。

**傳統模式：**

 重試訊息會由 botocore.retryhandler 產生。您會看到以下三條訊息中的某一條：
+ `No retry needed`
+ `Retry needed, action of: <action_name>`
+ `Reached the maximum number of retry attempts: <attempt_number>`

**標準或自適應模式：**

 重試訊息會由 botocore.retries.standard 產生。您會看到以下三條訊息中的某一條：
+ `No retrying request` 
+ `Retry needed, retrying request after delay of: <delay_value>`
+ `Retry needed but retry quota reached, not retrying request`

如需 botocore 重試的完整定義檔案，請參閱 *botocore GitHub 儲存庫*上的 [\$1retry.json](https://github.com/boto/botocore/blob/develop/botocore/data/_retry.json)。

# 將 HTTP 代理用於 AWS CLI
<a name="cli-configure-proxy"></a>

若要透過代理伺服器存取 AWS，您可以使用代理伺服器所用的 DNS 網域名稱或 IP 地址和連接埠號碼來設定 `HTTP_PROXY` 和 `HTTPS_PROXY` 環境變數。

**Topics**
+ [使用範例](#cli-configure-proxy-using)
+ [驗證代理](#cli-configure-proxy-auth)
+ [在 Amazon EC2 執行個體上使用代理](#cli-configure-proxy-ec2)
+ [故障診斷](#cli-configure-proxy-tshoot)

## 使用範例
<a name="cli-configure-proxy-using"></a>

**注意**  
下列範例中，環境變數以全部大寫字母顯示。但是，如果使用不同的大小寫指定一個變數兩次，則小寫字母優先。我們建議您每個變數只定義一次，以避免混淆和意外行為。

以下範例說明如何使用代理的明確 IP 地址，或可解析代理 IP 地址的 DNS 名稱。兩者後面都可以加上冒號，以及查詢應該送往的連接埠號碼。

------
#### [ Linux or macOS ]

```
$ export HTTP_PROXY=http://10.15.20.25:1234
$ export HTTP_PROXY=http://proxy.example.com:1234
$ export HTTPS_PROXY=http://10.15.20.25:5678
$ export HTTPS_PROXY=http://proxy.example.com:5678
```

------
#### [ Windows Command Prompt ]

**針對所有工作階段設定**

```
C:\> setx HTTP_PROXY http://10.15.20.25:1234
C:\> setx HTTP_PROXY http://proxy.example.com:1234
C:\> setx HTTPS_PROXY http://10.15.20.25:5678
C:\> setx HTTPS_PROXY http://proxy.example.com:5678
```

使用 [https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/setx](https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/setx) 設定環境變數時，將會變更在目前命令提示工作階段及您在執行命令後建立的所有命令提示工作階段中使用的數值。***不會***影響您執行命令當時已執行的其他命令 Shell。

**僅針對目前工作階段設定**

使用 `[set](https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/set_1)` 設定環境變數會變更使用的數值，直到目前命令提示工作階段結束或直到您將該變數設為其他數值。

```
C:\> set HTTP_PROXY=http://10.15.20.25:1234
C:\> set HTTP_PROXY=http://proxy.example.com:1234
C:\> set HTTPS_PROXY=http://10.15.20.25:5678
C:\> set HTTPS_PROXY=http://proxy.example.com:5678
```

------

## 驗證代理
<a name="cli-configure-proxy-auth"></a>

**注意**  
AWS CLI 不支援 NTLM 代理。如果使用 NTLM 或 Kerberos 通訊協定代理，則可以透過如 [Cntlm](http://cntlm.sourceforge.net) 這樣的身分驗證代理進行連接。

AWS CLI 支援 HTTP 基本驗證。在代理 URL 中指定使用者名稱和密碼，如下所示。

------
#### [ Linux or macOS ]

```
$ export HTTP_PROXY=http://username:password@proxy.example.com:1234
$ export HTTPS_PROXY=http://username:password@proxy.example.com:5678
```

------
#### [ Windows Command Prompt ]

**針對所有工作階段設定**

```
C:\> setx HTTP_PROXY http://username:password@proxy.example.com:1234
C:\> setx HTTPS_PROXY http://username:password@proxy.example.com:5678
```

**僅針對目前工作階段設定**

```
C:\> set HTTP_PROXY=http://username:password@proxy.example.com:1234
C:\> set HTTPS_PROXY=http://username:password@proxy.example.com:5678
```

------

## 在 Amazon EC2 執行個體上使用代理
<a name="cli-configure-proxy-ec2"></a>

如果您在以連接的 IAM 角色啟動的 Amazon EC2 執行個體上設定代理，請務必將用來存取[執行個體中繼資料](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html)的地址排除。若要這麼做，請將 `NO_PROXY` 環境變數設為執行個體中繼資料服務的 IP 地址 (169.254.169.254)。此地址不會改變。

------
#### [ Linux or macOS ]

```
$ export NO_PROXY=169.254.169.254
```

------
#### [ Windows Command Prompt ]

**針對所有工作階段設定**

```
C:\> setx NO_PROXY 169.254.169.254
```

**僅針對目前工作階段設定**

```
C:\> set NO_PROXY=169.254.169.254
```

------

## 故障診斷
<a name="cli-configure-proxy-tshoot"></a>

如果您遭遇有關 AWS CLI 的問題，請參閱 [故障診斷 的錯誤 AWS CLI](cli-chap-troubleshooting.md) 以瞭解故障診斷步驟。如需最相關的故障診斷步驟，請參閱 [SSL 憑證錯誤](cli-chap-troubleshooting.md#tshoot-certificate-verify-failed)。

# 在 中使用端點 AWS CLI
<a name="cli-configure-endpoints"></a>

若要以程式設計方式連線至 AWS 服務，您可以使用 端點。*端點*是 AWS Web 服務的進入點 URL。 AWS Command Line Interface (AWS CLI) 會自動為 中的每個服務使用預設端點 AWS 區域，但您可以為 API 請求指定替代端點。

**Contents**
+ [設定單一命令的端點](#endpoints-command)
+ [設定所有 的全域端點 AWS 服務](#endpoints-global)
+ [設定為對所有 使用 FIPs端點 AWS 服務](#endpoints-fips)
+ [設定為對所有 使用雙堆疊端點 AWS 服務](#endpoints-dual-stack)
+ [設定服務特定端點](#endpoints-service-specific)
  + [環境變數](#endpoints-service-specific-envvars)
  + [共用 `config` 檔案](#endpoints-service-specific-config)
  + [服務特定識別碼清單](#endpoints-service-specific-table)
+ [帳戶型端點](#endpoints-accountid)
+ [端點組態和設定優先順序](#endpoints-precedence)

## 設定單一命令的端點
<a name="endpoints-command"></a>

若要取代單一命令的任何端點設定或環境變數，請使用 `--endpoint-url` 命令列選項。下列命令範例使用自訂的 Amazon S3 端點 URL。

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

## 設定所有 的全域端點 AWS 服務
<a name="endpoints-global"></a>

若要將所有服務的請求路由至自訂端點 URL，請使用下列其中一個設定：
+ 環境變數：
  + `AWS\$1IGNORE\$1CONFIGURED\$1ENDPOINT\$1URLS` - 忽略已設定的端點 URL。

------
#### [ Linux or macOS ]

    ```
    $ export AWS_IGNORE_CONFIGURED_ENDPOINT_URLS=true
    ```

------
#### [ Windows Command Prompt ]

    **針對所有工作階段設定**

    ```
    C:\> setx AWS_IGNORE_CONFIGURED_ENDPOINT_URLS true
    ```

    **僅針對目前工作階段設定**

    ```
    C:\> set AWS_IGNORE_CONFIGURED_ENDPOINT_URLS=true
    ```

------
#### [ PowerShell ]

    ```
    PS C:\> $Env:AWS_IGNORE_CONFIGURED_ENDPOINT_URLS="true"
    ```

------
  + `AWS\$1ENDPOINT\$1URL` - 設定全域端點 URL。

------
#### [ Linux or macOS ]

    ```
    $ export AWS_ENDPOINT_URL=http://localhost:4567
    ```

------
#### [ Windows Command Prompt ]

    **針對所有工作階段設定**

    ```
    C:\> setx AWS_ENDPOINT_URL http://localhost:4567
    ```

    **僅針對目前工作階段設定**

    ```
    C:\> set AWS_ENDPOINT_URL=http://localhost:4567
    ```

------
#### [ PowerShell ]

    ```
    PS C:\> $Env:AWS_ENDPOINT_URL="http://localhost:4567"
    ```

------
+ `config` 檔案：
  + `ignore\$1configure\$1endpoint\$1urls` - 忽略已設定的端點 URL。

    ```
    ignore_configure_endpoint_urls = true
    ```
  + `endpoint\$1url` - 設定全域端點 URL。

    ```
    endpoint_url = http://localhost:4567
    ```

服務特定端點和 `--endpoint-url` 命令列選項會覆寫任何全域端點。

## 設定為對所有 使用 FIPs端點 AWS 服務
<a name="endpoints-fips"></a>

若要路由所有服務的請求以使用 FIP 端點，請使用下列其中一項：
+ `AWS\$1USE\$1FIPS\$1ENDPOINT` 環境變數。

------
#### [ Linux or macOS ]

  ```
  $ export AWS_USE_FIPS_ENDPOINT=true
  ```

------
#### [ Windows Command Prompt ]

  **針對所有工作階段設定**

  ```
  C:\> setx AWS_USE_FIPS_ENDPOINT true
  ```

  **僅針對目前工作階段設定**

  ```
  C:\> set AWS_USE_FIPS_ENDPOINT=true
  ```

------
#### [ PowerShell ]

  ```
  PS C:\> $Env:AWS_USE_FIPS_ENDPOINT="true"
  ```

------
+ `use\$1fips\$1endpoint` 檔案設定。

  ```
  use_fips_endpoint = true
  ```

有些 AWS 服務提供支援[聯邦資訊處理標準 (FIPS) 140-2](https://aws.amazon.com/compliance/fips/) 的端點 AWS 區域。當 AWS 服務支援 FIPS 時，此設定會指定 AWS CLI 應使用的 FIPS 端點。與標準的 AWS 端點不同，FIPS 端點使用的是遵守 FIPS 140-2 的 TLS 軟體程式庫。會與美國政府互動的企業可能需要這些端點。

如果啟用此設定，但 中的服務不存在 FIPS 端點 AWS 區域，則 AWS 命令可能會失敗。在此情況下，請使用 `--endpoint-url` 選項或使用[服務特定端點](#endpoints-service-specific)手動指定要在命令中使用的端點。

如需依 指定 FIPS 端點的詳細資訊 AWS 區域，請參閱[依服務的 FIPS 端點](https://aws.amazon.com/compliance/fips/)。

## 設定為對所有 使用雙堆疊端點 AWS 服務
<a name="endpoints-dual-stack"></a>

若要路由所有服務的請求以使用雙堆疊端點 (如果可用)，請使用下列其中一項：
+ `AWS\$1USE\$1DUALSTACK\$1ENDPOINT` 環境變數。

------
#### [ Linux or macOS ]

  ```
  $ export AWS_USE_DUALSTACK_ENDPOINT=true
  ```

------
#### [ Windows Command Prompt ]

  **針對所有工作階段設定**

  ```
  C:\> setx AWS_USE_DUALSTACK_ENDPOINT true
  ```

  **僅針對目前工作階段設定**

  ```
  C:\> set AWS_USE_DUALSTACK_ENDPOINT=true
  ```

------
#### [ PowerShell ]

  ```
  PS C:\> $Env:AWS_USE_DUALSTACK_ENDPOINT="true"
  ```

------
+ `use\$1dualstack\$1endpoint` 檔案設定。

  ```
  use_dualstack_endpoint = true
  ```

允許使用雙堆疊端點傳送 AWS 請求。若要進一步了解支援 IPv4 和 IPv6 流量的雙堆疊端點，請參閱《Amazon Simple Storage Service 使用者指南》**中的[使用 Amazon S3 雙堆疊端點](https://docs.aws.amazon.com/AmazonS3/latest/userguide/dual-stack-endpoints.html)。雙堆疊端點適用於部分區域的某些服務。如果服務或 不存在雙堆疊端點 AWS 區域，請求會失敗。此選項根據預設為停用。

## 設定服務特定端點
<a name="endpoints-service-specific"></a>

服務特定的端點組態提供選項，讓您針對 AWS CLI 請求使用您選擇的持久性端點。這些設定提供彈性，以支援本機端點、VPC 端點和第三方本機 AWS 開發環境。不同的端點可用於測試和生產環境。您可以為個人 AWS 服務指定端點 URL。

可以使用下列方式來指定服務特定端點：
+ 單一指令的命令列選項 `--endpoint-url`。
+ 環境變數：
  + `AWS\$1IGNORE\$1CONFIGURED\$1ENDPOINT\$1URLS` - 忽略所有已設定的端點 URL，除非在命令列中指定。
  + `AWS\$1ENDPOINT\$1URL\$1<SERVICE>` - 指定用於特定服務的自訂端點，其中 `<SERVICE>` 會以 AWS 服務 識別碼取代。如需所有服務特定變數，請參閱 [服務特定端點：服務特定識別碼清單](#endpoints-service-specific-table)。
+ `config` 檔案：
  + `ignore\$1configure\$1endpoint\$1urls` - 忽略所有已設定的端點 URL，除非使用環境變數或在命令列中指定。
  + `config` 檔案的 [`services`](cli-configure-files.md#cli-configure-files-format-services) 部分與 `endpoint\$1url` 檔案設定結合。

**Topics**
+ [環境變數](#endpoints-service-specific-envvars)
+ [共用 `config` 檔案](#endpoints-service-specific-config)
+ [服務特定識別碼清單](#endpoints-service-specific-table)

### 服務特定端點：環境變數
<a name="endpoints-service-specific-envvars"></a>

環境變數會覆寫組態檔中的設定，但不會覆寫命令列上指定的選項。如果您希望所有設定檔都使用裝置上的相同端點，請使用環境變數。

以下是服務特定的環境變數：
+ `AWS\$1IGNORE\$1CONFIGURED\$1ENDPOINT\$1URLS` - 忽略所有已設定的端點 URL，除非在命令列中指定。

------
#### [ Linux or macOS ]

  ```
  $ export AWS_IGNORE_CONFIGURED_ENDPOINT_URLS=true
  ```

------
#### [ Windows Command Prompt ]

  **針對所有工作階段設定**

  ```
  C:\> setx AWS_IGNORE_CONFIGURED_ENDPOINT_URLS true
  ```

  **僅針對目前工作階段設定**

  ```
  C:\> set AWS_IGNORE_CONFIGURED_ENDPOINT_URLS=true
  ```

------
#### [ PowerShell ]

  ```
  PS C:\> $Env:AWS_IGNORE_CONFIGURED_ENDPOINT_URLS="true"
  ```

------
+ `AWS\$1ENDPOINT\$1URL\$1<SERVICE>` - 指定用於特定服務的自訂端點，其中 `<SERVICE>` 以 AWS 服務 識別符取代。如需所有服務特定變數，請參閱 [服務特定端點：服務特定識別碼清單](#endpoints-service-specific-table)。

  下列環境變數範例會設定 AWS Elastic Beanstalk的端點。

------
#### [ Linux or macOS ]

  ```
  $ export AWS_ENDPOINT_URL_ELASTIC_BEANSTALK=http://localhost:4567
  ```

------
#### [ Windows Command Prompt ]

  **針對所有工作階段設定**

  ```
  C:\> setx AWS_ENDPOINT_URL_ELASTIC_BEANSTALK http://localhost:4567
  ```

  **僅針對目前工作階段設定**

  ```
  C:\> set AWS_ENDPOINT_URL_ELASTIC_BEANSTALK=http://localhost:4567
  ```

------
#### [ PowerShell ]

  ```
  PS C:\> $Env:AWS_ENDPOINT_URL_ELASTIC_BEANSTALK="http://localhost:4567"
  ```

------

如需有關設定環境變數的詳細資訊，請參閱 [設定 的環境變數 AWS CLI](cli-configure-envvars.md)。

### 服務特定端點：共用 `config` 檔案
<a name="endpoints-service-specific-config"></a>

在共用 `config` 檔案中，`endpoint_url` 用於多個部分。若要設定服務特定端點，請使用巢狀化在 `services` 區段中服務識別碼金鑰下的 `endpoint_url` 設定。如需在共用 `config` 檔案中定義 `services` 區段的詳細資訊，請參閱 [區段類型：`services`](cli-configure-files.md#cli-configure-files-format-services)。

下列範例使用 `services` 區段為 Amazon S3 設定服務特定端點 URL，以及用於所有其他服務的自訂全球端點：

```
[profile dev1]
endpoint_url = http://localhost:1234
services = s3-specific

[services testing-s3]
s3 = 
  endpoint_url = http://localhost:4567
```

單一設定檔可以設定多個服務的端點。下列範例會在相同的設定檔中設定 Amazon S3 和 AWS Elastic Beanstalk 的服務特定端點 URL。

如需要在 `services` 區段中使用的所有服務識別碼金鑰的清單，請參閱 [服務特定識別碼清單](#endpoints-service-specific-table)。

```
[profile dev1]
services = testing-s3-and-eb

[services testing-s3-and-eb]
s3 = 
  endpoint_url = http://localhost:4567
elastic_beanstalk = 
  endpoint_url = http://localhost:8000
```

服務組態區段可用於多個設定檔。以下範例有兩個設定檔使用相同的 `services` 定義：

```
[profile dev1]
output = json
services = testing-s3

[profile dev2]
output = text
services = testing-s3

[services testing-s3]
s3 = 
  endpoint_url = https://localhost:4567
```

### 服務特定端點：服務特定識別碼清單
<a name="endpoints-service-specific-table"></a>

 AWS 服務 識別符是以 API 模型的 為基礎`serviceId`，方法是以底線取代所有空格，並縮小所有字母大小寫。

下表列出所有服務特定識別碼、`config` 檔案金鑰和環境變數。

## 帳戶型端點
<a name="endpoints-accountid"></a>

可以使用下列方式來指定帳戶型端點：
+ 環境變數
  + `AWS\$1ACCOUNT\$1ID` - 指定 AWS 帳戶型端點 ID 以用於呼叫支援的 AWS 服務。

------
#### [ Linux or macOS ]

    ```
    $ export AWS_ACCOUNT_ID=<account-id>
    ```

------
#### [ Windows Command Prompt ]

    **針對所有工作階段設定**

    ```
    C:\> setx AWS_ACCOUNT_ID <account-id>
    ```

    **僅針對目前工作階段設定**

    ```
    C:\> set AWS_ACCOUNT_ID=<account-id>
    ```

------
#### [ PowerShell ]

    ```
    PS C:\> $Env:AWS_ACCOUNT_ID="<account-id>"
    ```

------
  + `AWS\$1ACCOUNT\$1ID\$1ENDPOINT\$1MODE` - 指定是否使用 AWS 帳戶型端點 ID 來呼叫支援的 AWS 服務。可設定為 `preferred`、`disabled` 或 `required`。預設值為 `preferred`。

------
#### [ Linux or macOS ]

    ```
    $ export AWS_ACCOUNT_ID_ENDPOINT_MODE=preferred
    ```

------
#### [ Windows Command Prompt ]

    **針對所有工作階段設定**

    ```
    C:\> setx AWS_ACCOUNT_ID_ENDPOINT_MODE preferred
    ```

    **僅針對目前工作階段設定**

    ```
    C:\> set AWS_ACCOUNT_ID_ENDPOINT_MODE=preferred
    ```

------
#### [ PowerShell ]

    ```
    PS C:\> $Env:AWS_ACCOUNT_ID_ENDPOINT_MODE="preferred"
    ```

------
+ `config` 檔案：
  + `aws\$1account\$1id` - 指定要用於對受支援 呼叫 AWS 的帳戶型端點 ID AWS 服務。

    ```
    aws_account_id = <account-id>
    ```
  + `account\$1id\$1endpoint\$1mode` - 指定是否使用 AWS 帳戶型端點 ID 來呼叫支援的 AWS 服務。可設定為 `preferred`、`disabled` 或 `required`。預設值為 preferred。

    ```
    account_id_endpoint_mode = preferred
    ```

帳戶型端點使用 AWS 您的帳戶 ID 來簡化支援此功能之服務的 AWS 服務 請求路由，有助於確保高效能和可擴展性。當您使用登入資料提供者和支援以帳戶為基礎的端點的服務時， AWS CLI 會自動建構並使用以帳戶為基礎的端點，而不是區域性端點。

以帳戶為基礎的端點使用下列格式，其中 `<account-id>` 以 AWS 您的帳戶 ID 取代，而 `<region>` 以您的 取代 AWS 區域：

```
https://<account-id>.myservice.<region>.amazonaws.com
```

在 中 AWS CLI，帳戶型端點模式預設為 `preferred`。

## 端點組態和設定優先順序
<a name="endpoints-precedence"></a>

端點組態設定位於多個位置，例如系統或使用者環境變數、本機 AWS 組態檔案，或在命令列上明確宣告為參數。 AWS CLI 端點組態設定的優先順序如下：

1. `--endpoint-url` 命令列選項。

1. 如果啟用，則 `AWS\$1IGNORE\$1CONFIGURED\$1ENDPOINT\$1URLS` 全域端點環境變數或設定檔設定 `ignore\$1configure\$1endpoint\$1urls` 將忽略自訂端點。

1. 服務特定環境變數 `AWS\$1ENDPOINT\$1URL\$1<SERVICE>` 所提供的值，例如 `AWS_ENDPOINT_URL_DYNAMODB`。

1. `AWS\$1USE\$1DUALSTACK\$1ENDPOINT`、`AWS\$1USE\$1FIPS\$1ENDPOINT` 和 `AWS\$1ENDPOINT\$1URL` 環境變數所提供的值。

1. 在 `AWS\$1ACCOUNT\$1ID` 環境變數或 `aws\$1account\$1id` 設定中會使用帳戶 ID 將 `AWS\$1ACCOUNT\$1ID\$1ENDPOINT\$1MODE` 環境變數設定為 `preferred` 或 `required`。

1. 共用 `config` 檔案 `services` 區段內的 `endpoint\$1url` 設定所提供的服務特定端點值。

1. 共用 `config` 檔案的 `profile` 中的 `endpoint\$1url` 設定所提供的值。

1. `use\$1dualstack\$1endpoint`、`use\$1fips\$1endpoint` 和 `endpoint\$1url` 設定。

1. 在 `AWS\$1ACCOUNT\$1ID` 環境變數或 `aws\$1account\$1id` 設定中會使用帳戶 ID 將 `account\$1id\$1endpoint\$1mode` 設定設為 `preferred` 或 `required`。

1. 最後 AWS 服務 會使用個別 的任何預設端點 URL。如需每個區域可用的標準服務端點清單，請參閱 *Amazon Web Services 一般參考* 中的 [AWS 區域與端點](https://docs.aws.amazon.com/general/latest/gr/rande.html)。