Version AWS SDK for Java 1.x wurde am 31. Juli 2024 in den Wartungsmodus versetzt und wird end-of-support
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 im DienstAPI. Beispielsweise wird die Dienstschnittstelle für DynamoDB benannt. AmazonDynamoDBClient 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 ist benannt. AmazonDynamoDBClientBuilder
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 Builder haben, können Sie die Eigenschaften des Clients anpassen, indem Sie viele Fluent-Setter im Builder verwenden. API 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 bietet auch Fluent-Setter für ClientConfigurationund und eine benutzerdefinierte RequestMetricCollectorListe mit 2. 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. ExecutorFactory
ist 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 in der SDK sind Thread-sicher. Um eine optimale 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