在 中使用端點 AWS CLI - AWS Command Line Interface

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

在 中使用端點 AWS CLI

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

設定單一命令的端點

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

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

設定所有 的全域端點 AWS 服務

若要將所有 服務的請求路由至自訂端點 URL,請使用下列其中一項設定:

  • 環境變數:

    • AWS_IGNORE_CONFIGURED_ENDPOINT_URLS - 忽略設定的端點 URLs。

      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_ENDPOINT_URL - 設定全域端點 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 檔案:

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

設定為對所有 使用FIPs端點 AWS 服務

若要路由所有 服務的請求以使用FIPs端點,請使用下列其中一項:

  • AWS_USE_FIPS_ENDPOINT 環境變數。

    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_fips_endpoint 檔案設定。

    use_fips_endpoint = true

某些 AWS 服務在某些 中提供支援聯邦資訊處理標準 (FIPS) 140-2 的端點 AWS 區域。當 AWS 服務支援 時FIPS,此設定會指定 AWS CLI 應使用 的FIPS端點。與標準 AWS 端點不同,FIPS端點使用符合 140-2 FIPS TLS的軟體程式庫。會與美國政府互動的企業可能需要這些端點。

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

如需依 指定FIPS端點的詳細資訊 AWS 區域,請參閱依FIPS服務區分的端點。

設定為所有 AWS 服務使用雙堆疊端點

若要路由所有服務的請求以使用雙堆疊端點 (如果可用),請使用下列其中一項:

  • AWS_USE_DUALSTACK_ENDPOINT 環境變數。

    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_dualstack_endpoint 檔案設定。

    use_dualstack_endpoint = true

啟用雙堆疊端點傳送 AWS 請求。若要進一步了解支援 IPv4和 IPv6流量的雙堆疊端點,請參閱Amazon Simple Storage Service 使用者指南中的使用 Amazon S3 雙堆疊端點。雙堆疊端點適用於部分區域的某些服務。如果 服務或 不存在雙堆疊端點 AWS 區域,則請求會失敗。此選項根據預設為停用。

設定服務特定端點

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

可以使用下列方式來指定服務特定端點:

服務特定端點:環境變數

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

以下是服務特定的環境變數:

  • AWS_IGNORE_CONFIGURED_ENDPOINT_URLS - 忽略所有設定的端點 URLs,除非在命令列上指定。

    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_ENDPOINT_URL_<SERVICE> - 指定用於特定服務的自訂端點,其中 <SERVICE> 會取代為 AWS 服務 識別符。如需所有服務特定變數,請參閱 服務特定端點:服務特定識別碼清單

    下列環境變數範例會設定 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

服務特定端點:共用 config 檔案

在共用 config 檔案中,endpoint_url 用於多個部分。若要設定服務特定端點,請使用巢狀化在 services 區段中服務識別碼金鑰下的 endpoint_url 設定。如需在共用 config 檔案中定義 services 區段的詳細資訊,請參閱 區段類型:services

下列範例使用 services區段來設定 URL Amazon S3 的服務特定端點,以及所有其他 服務的自訂全域端點:

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

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

如需要在 services 區段中使用的所有服務識別碼金鑰的清單,請參閱 服務特定識別碼清單

[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

服務特定端點:服務特定識別碼清單

AWS 服務 識別符是以API模型為基礎serviceId,方法是將所有空格替換為底線,並縮小所有字母大小。

下列服務識別符範例使用 AWS Elastic Beanstalk。 AWS Elastic Beanstalk 具有 serviceIdElastic Beanstalk,因此服務識別符金鑰為 elastic_beanstalk

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

端點組態和設定優先順序

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

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

  2. 如果啟用,則 AWS_IGNORE_CONFIGURED_ENDPOINT_URLS 全域端點環境變數或設定檔設定 ignore_configure_endpoint_urls 將忽略自訂端點。

  3. 服務特定環境變數 AWS_ENDPOINT_URL_<SERVICE> 所提供的值,例如 AWS_ENDPOINT_URL_DYNAMODB

  4. AWS_USE_DUALSTACK_ENDPOINTAWS_USE_FIPS_ENDPOINTAWS_ENDPOINT_URL 環境變數所提供的值。

  5. 共用 config 檔案 services 區段內的 endpoint_url 設定所提供的服務特定端點值。

  6. 共用 config 檔案的 profile 中的 endpoint_url 設定所提供的值。

  7. use_dualstack_endpointuse_fips_endpointendpoint_url 設定。

  8. 最後 AWS 服務 會使用URL個別 的任何預設端點。如需每個區域可用的標準服務端點清單,請參閱 Amazon Web Services 一般參考 中的 AWS 區域與端點