使用中的端點 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 - 忽略已設定的端點 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_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 命令列選項會覆寫任何全域端點。

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

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

  • 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 端點使用的是遵守 FIPS 140-2 的 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 開發環境的彈性。不同的端點可用於測試和生產環境。您可以為個人 AWS 服務指定端點 URL。

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

服務特定端點:環境變數

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

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

  • AWS_IGNORE_CONFIGURED_ENDPOINT_URLS - 忽略所有已設定的端點 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_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 區段為 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 區段中使用的所有服務識別碼金鑰的清單,請參閱 服務特定識別碼清單

[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 區域與端點