

**本文件 AWS CLI 僅適用於 第 1 版。**

我們已宣布即將end-of-support。 AWS CLI 我們建議您遷移至 第 2 AWS CLI 版。如需日期、其他詳細資訊和如何遷移的資訊，請參閱 [公告](https://aws.amazon.com/blogs/developer/cli-v1-maintenance-mode-announcement/)。如需 第 2 版的相關文件 AWS CLI，請參閱 第 [2 版使用者指南](https://docs.aws.amazon.com/cli/latest/userguide/)。

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

# 在 中使用端點 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)。