Erstellen von Service-Clients - AWS SDK for Java 1.x

Wir haben die kommende Version end-of-support für AWS SDK for Java (v1) angekündigt. Wir empfehlen Ihnen, auf AWS SDK for Java Version 2 zu migrieren. Termine, weitere Details und Informationen zur Migration finden Sie in der verlinkten Ankündigung.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Erstellen von Service-Clients

Um Anfragen zu stellen Amazon Web Services, erstellen Sie zunächst ein Service-Client-Objekt. Die empfohlene Methode besteht darin, den Service-Client-Generator zu nutzen.

Jedes AWS-Service hat eine Serviceschnittstelle mit Methoden für jede Aktion in der Service-API. Die Dienstschnittstelle für DynamoDB heißt AmazonDynamo beispielsweise DBClient. Jede Service-Schnittstelle verfügt über einen entsprechenden Client-Generator, mit dem Sie eine Implementierung der Service-Schnittstelle erstellen können. Die Client-Builder-Klasse für DynamoDB heißt DB. AmazonDynamo ClientBuilder

Abruf eines Client-Generators

Um eine Instance des Client-Generators abzurufen, verwenden Sie die statische Factory-Methode standard, wie im folgenden Beispiel gezeigt.

AmazonDynamoDBClientBuilder builder = AmazonDynamoDBClientBuilder.standard();

Sobald Sie einen Generator haben, können Sie die Eigenschaften des Clients anpassen, indem Sie die vielen praktischen Setter in der Generator-API nutzen. Beispielsweise können Sie wie folgt eine benutzerdefinierte Region und einen benutzerdefinierten Anmeldeinformationsanbieter festlegen.

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

Die praktischen withXXX-Methoden geben das builder-Objekt zurück. So können Sie die Methodenaufrufe in Reihe schalten, was nicht nur einfacher ist, sondern auch für besser lesbaren Code sorgt. Nachdem Sie die gewünschten Eigenschaften konfiguriert haben, rufen Sie die build-Methode auf, um den Client zu erstellen. Sobald ein Client erstellt wurde, ist er unveränderlich und alle Aufrufe an setRegion oder setEndpoint schlagen fehl.

Ein Generator kann mehrere Clients mit der gleichen Konfiguration erstellen. Wenn Sie Ihre Anwendung entwerfen, sollten Sie daran denken, dass der Generator veränderlich und nicht threadsicher ist.

Der folgende Code verwendet den Generator als Factory für Client-Instances.

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

Der Builder stellt auch fließende Setter für ClientConfigurationund sowie RequestMetricCollectoreine benutzerdefinierte Liste von 2 bereit. RequestHandler

Im Folgenden finden Sie ein vollständiges Beispiel, in dem sämtliche konfigurierbaren Eigenschaften überschrieben werden.

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();

Erstellen von Async-Clients

Der AWS SDK for Java hat asynchrone (oder asynchrone) Clients für jeden Dienst (außer Amazon S3) und einen entsprechenden asynchronen Client-Builder für jeden Dienst.

So erstellen Sie einen asynchronen DynamoDB-Client mit dem Standard ExecutorService

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

Zusätzlich zu den Konfigurationsoptionen, die der synchrone (oder synchrone) Client-Builder unterstützt, ermöglicht Ihnen der asynchrone Client, benutzerdefinierte Optionen festzulegen, um die ExecutorFactoryzu ändern, ExecutorService die der asynchrone Client verwendet. ExecutorFactoryist eine funktionale Schnittstelle, sodass sie mit Lambda-Ausdrücken und Methodenreferenzen in Java 8 zusammenarbeitet.

So erstellen Sie einen asynchronen Client mit einem benutzerdefinierten Executor

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

Verwenden DefaultClient

Sowohl der synchrone als auch der asynchrone Client-Generator haben eine weitere Factory-Methode mit dem Namen defaultClient. Mit dieser Methode wird ein Dienstclient mit der Standardkonfiguration erstellt, wobei die Standardanbieterkette zum Laden von Anmeldeinformationen und der verwendet wird AWS-Region. Wenn die Anmeldeinformationen oder die Region nicht aus der Umgebung, in der die Anwendung ausgeführt wird, ermittelt werden können, schlägt der Aufruf von defaultClient fehl. Weitere Informationen darüber, wie AWS Anmeldeinformationen und Region bestimmt werden, finden Sie unter Mit Anmeldeinformationen arbeiten und AWS-Region Auswahl.

So erstellen Sie einen Standard-Service-Client

AmazonDynamoDB ddb = AmazonDynamoDBClientBuilder.defaultClient();

Client-Lebenszyklus

Service-Clients im SDK sind threadsicher. Um eine bestmögliche Leistung zu erzielen, sollten Sie sie als langlebige Objekte behandeln. Jeder Client verfügt über seine eigene Verbindungspool-Ressource. Explizit Clients herunterfahren, wenn sie nicht mehr benötigt werden, um Ressourcenverluste zu vermeiden.

Um einen Client explizit herunterzufahren, rufen Sie die shutdown-Methode auf. Nach dem Aufruf von shutdown werden alle Client-Ressourcen freigegeben und der Client kann nicht mehr verwendet werden.

So fahren Sie einen Client herunter

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