我們宣布
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立服務用戶端
若要向其發出要求 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
方法來建立用戶端。一旦客戶端被創建,它是不可變的,任何調用setRegion
或setEndpoint
將失敗。
生成器可以創建具有相同配置的多個客戶端。在編寫應用程序時,請注意構建器是可變的,而不是線程安全的。
下面的代碼使用生成器作為客戶端實例的工廠。
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設置者ClientConfiguration和 RequestMetricCollector,以及 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