AWS 區域 選擇 - AWS SDK for Java 1.x

截至 2024 年 7 月 31 日, AWS SDK for Java 1.x 已進入維護模式,並將end-of-support在 2025 年 12 月 31 日送達。我們建議您遷移至 AWS SDK for Java 2.x,以繼續接收新功能、可用性改進和安全性更新。

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

AWS 區域 選擇

區域可讓您存取 AWS 實際位於特定地理區域的服務。這對於備援以及讓您的資料和應用程式在靠近您和您的使用者存取位置附近執行,都很有用。

檢查區域中的服務可用性

若要查看特定 是否 AWS 服務 可在區域中使用,請在您要使用的區域中使用 isServiceSupported方法。

Region.getRegion(Regions.US_WEST_2) .isServiceSupported(AmazonDynamoDB.ENDPOINT_PREFIX);

請參閱可指定區域的區域類別文件,並使用 服務的端點字首進行查詢。每個服務的端點字首都會在服務介面中定義。例如, DynamoDB 端點字首會在AmazonDynamo資料庫 中定義。

選擇區域

從 1.4 版開始 AWS SDK for Java,您可以指定區域名稱, SDK會自動為您選擇適當的端點。若要自行選擇端點,請參閱選擇特定端點。

若要明確設定區域,建議您使用區域列舉。這是所有公開可用區域的列舉。若要從列舉建立具有區域的用戶端,請使用下列程式碼。

AmazonEC2 ec2 = AmazonEC2ClientBuilder.standard() .withRegion(Regions.US_WEST_2) .build();

如果您嘗試使用的區域不在Regions列舉中,您可以使用代表區域名稱的字串來設定區域。

AmazonEC2 ec2 = AmazonEC2ClientBuilder.standard() .withRegion("{region_api_default}") .build();
注意

使用建置器建置用戶端後,這是不可變的,而且區域無法變更。如果您 AWS 區域 針對相同的服務使用多個 ,您應該建立多個用戶端,每個區域一個。

選擇特定端點

每個 AWS 用戶端都可以設定為在建立用戶端時呼叫 withEndpointConfiguration方法,以使用區域中的特定端點

例如,若要將 Amazon S3 用戶端設定為使用歐洲 (愛爾蘭) 區域,請使用下列程式碼。

AmazonS3 s3 = AmazonS3ClientBuilder.standard() .withEndpointConfiguration(new EndpointConfiguration( "https://s3.eu-west-1.amazonaws.com", "eu-west-1")) .withCredentials(CREDENTIALS_PROVIDER) .build();

如需所有 AWS 服務的目前區域清單及其對應的端點,請參閱區域和端點。

從環境自動判斷區域

重要

本節僅適用於使用用戶端建置器存取 AWS services。使用用戶端建構器 AWS 建立的用戶端不會自動從環境中判斷區域,而是使用預設SDK區域 (USEast1)。

在 Amazon EC2 或 Lambda 上執行時,您可能想要設定用戶端,以使用程式碼正在執行的相同區域。這會讓您的程式碼與其執行環境分離,也更容易將應用程式部署到多個區域,以降低延遲或提供備援。

您必須使用用戶端建置器,讓 SDK自動偵測程式碼正在執行的區域。

若要使用預設的登入資料/區域供應者鏈結來從環境判斷區域,請使用用戶端建置器的 defaultClient 方法。

AmazonEC2 ec2 = AmazonEC2ClientBuilder.defaultClient();

這與使用 相同,standard後面接著 build

AmazonEC2 ec2 = AmazonEC2ClientBuilder.standard() .build();

如果您沒有使用 withRegion 方法明確設定區域, 會SDK諮詢預設區域提供者鏈,以嘗試並決定要使用的區域。

預設區域供應者鏈結

以下是區域查詢程序:

  1. 在建置器setRegion本身上使用 withRegion或 設定的任何明確區域,其優先順序高於任何其他區域。

  2. 檢查 AWS_REGION 環境變數。如果有設定,會使用該區域來設定用戶端。

    注意

    此環境變數由 Lambda 容器設定。

  3. 會SDK檢查 AWS 共用組態檔案 (通常位於 ~/.aws/config)。如果區域屬性存在,則 SDK會使用它。

    • AWS_CONFIG_FILE 環境變數可用於自訂共用組態檔的位置。

    • AWS_PROFILE 環境變數或aws.profile系統屬性可用來自訂 載入的設定檔SDK。

  4. SDK 會嘗試使用 Amazon EC2 執行個體中繼資料服務來判斷目前執行中 Amazon EC2 執行個體的區域。

  5. 如果SDK目前仍未找到區域,則用戶端建立會失敗,但有例外狀況。

開發 AWS 應用程式時,常見的方法是使用共用組態檔案 (描述於使用預設憑證提供者鏈 ) 來設定本機開發的區域,並在 AWS 基礎設施上執行時依賴預設區域提供者鏈來判斷區域。這可大幅簡化用戶端建立並讓您的應用程式保持可攜式。