建立服務用戶端 - AWS SDK for Java 1.

我們宣布了即將推 end-of-support 出的 AWS SDK for Java (v1)。我們建議您移轉至 AWS SDK for Java v2。有關日期,其他詳細信息以及如何遷移的信息,請參閱鏈接的公告。

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

建立服務用戶端

若要向其發出要求 Amazon Web Services,您必須先建立服務用戶端物件。推薦的方法是使用服務客戶端構建器。

每個人都 AWS 服務 有一個服務接口,其中包含服務 API 中每個操作的方法。例如,DynamoDB 的服務介面名AmazonDynamo為「資料庫用戶端」。每個服務接口都有一個相應的客戶端構建器,您可以使用它來構建服務接口的實現。的用戶端建置器類別名稱 DynamoDB 為 AmazonDynamoDB ClientBuilder

取得用戶端建置器

若要取得用戶端建置器的執行個體,請使用靜態工廠方法standard,如下列範例所示。

AmazonDynamoDBClientBuilder builder = AmazonDynamoDBClientBuilder.standard();

擁有構建器後,您可以通過在構建器 API 中使用許多流利的 setter 來自定義客戶端的屬性。例如,您可以設定自訂區域和自訂認證提供者,如下所示。

AmazonDynamoDB ddb = AmazonDynamoDBClientBuilder.standard() .withRegion(Regions.US_WEST_2) .withCredentials(new ProfileCredentialsProvider("myProfile")) .build();
注意

流暢的withXXX方法返回對builder象,以便您可以鏈接方法調用以方便並獲得更易讀的代碼。設定您要的屬性後,您可以呼叫 build 方法來建立用戶端。一旦客戶端被創建,它是不可變的,任何調用setRegionsetEndpoint將失敗。

生成器可以創建具有相同配置的多個客戶端。在編寫應用程序時,請注意構建器是可變的,而不是線程安全的。

下面的代碼使用生成器作為客戶端實例的工廠。

public class DynamoDBClientFactory { private final AmazonDynamoDBClientBuilder builder = AmazonDynamoDBClientBuilder.standard() .withRegion(Regions.US_WEST_2) .withCredentials(new ProfileCredentialsProvider("myProfile")); public AmazonDynamoDB createClient() { return builder.build(); } }

構建器還公開了流利的RequestHandler設置者ClientConfigurationRequestMetricCollector,以及 2 的自定義列表。

以下是覆寫所有可配置屬性的完整範例。

AmazonDynamoDB ddb = AmazonDynamoDBClientBuilder.standard() .withRegion(Regions.US_WEST_2) .withCredentials(new ProfileCredentialsProvider("myProfile")) .withClientConfiguration(new ClientConfiguration().withRequestTimeout(5000)) .withMetricsCollector(new MyCustomMetricsCollector()) .withRequestHandlers(new MyCustomRequestHandler(), new MyOtherCustomRequestHandler) .build();

建立非同步用戶端

每個服務(除外)都 AWS SDK for Java 具有異步(或異步)客戶端,並為 Amazon S3每個服務提供相應的異步客戶端構建器。

若要使用預設值建立非同步 DynamoDB 用戶端 ExecutorService

AmazonDynamoDBAsync ddbAsync = AmazonDynamoDBAsyncClientBuilder.standard() .withRegion(Regions.US_WEST_2) .withCredentials(new ProfileCredentialsProvider("myProfile")) .build();

除了同步 (或同步處理) 用戶端產生器支援的設定選項之外,非同步用戶端可讓您設定自訂ExecutorFactory來變更非同步用戶端使用ExecutorService的設定選項。 ExecutorFactory是一個函數接口,因此它與 Java 8 lambda 表達式和方法引用進行交互操作。

使用自訂執行程式建立非同步用戶端

AmazonDynamoDBAsync ddbAsync = AmazonDynamoDBAsyncClientBuilder.standard() .withExecutorFactory(() -> Executors.newFixedThreadPool(10)) .build();

使用 DefaultClient

同步和異步客戶端構建器都有另一個名為defaultClient的工廠方法。此方法會建立具有預設組態的服務用戶端,並使用預設提供者鏈結來載入認證和 AWS 區域. 如果無法從應用程式執行的環境判斷登入資料或區域,則對 defaultClient 的呼叫失敗。請參閱使用 AWS 認證AWS 區域 選擇,以取得有關如何確定認證和區域的詳細資訊。

建立預設服務用戶端

AmazonDynamoDB ddb = AmazonDynamoDBClientBuilder.defaultClient();

用戶端生命週期

SDK 中的服務客戶端是線程安全的,為了獲得最佳性能,您應該將它們視為長壽命對象。每個用戶端都有自己的連線集區資源。在不再需要用戶端時,明確關閉用戶端,以避免資源洩漏。

若要明確關閉用戶端,請呼叫方shutdown法。呼叫之後shutdown,所有用戶端資源都會釋放,且用戶端無法使用。

關閉用戶端

AmazonDynamoDB ddb = AmazonDynamoDBClientBuilder.defaultClient(); ddb.shutdown(); // Client is now unusable