La AWS SDK for Java version 1.x est entrée en mode maintenance le 31 juillet 2024 et atteindra end-of-support
Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Création de clients de service
Pour envoyer des demandes à Amazon Web Services, vous devez d'abord créer un objet client de service. La méthode recommandée consiste à utiliser le générateur client de service.
Chacun Service AWS possède une interface de service avec des méthodes pour chaque action du serviceAPI. Par exemple, l'interface de service de DynamoDB est nommée. AmazonDynamoDBClient Chaque interface de service possède un générateur client correspondant que vous pouvez utiliser pour construire une implémentation de l'interface de service. La classe de création de clients pour DynamoDB est nommée AmazonDynamoDBClientBuilder.
Obtention d'un générateur client
Pour obtenir une instance du générateur client, utilisez la méthode de fabrique.statique standard
, comme illustré dans l'exemple suivant.
AmazonDynamoDBClientBuilder builder = AmazonDynamoDBClientBuilder.standard();
Une fois que vous avez un générateur, vous pouvez personnaliser les propriétés du client en utilisant de nombreux setters fluides dans le générateurAPI. Par exemple, vous pouvez définir une région personnalisée et un fournisseur d'informations d'identification personnalisé, comme suit.
AmazonDynamoDB ddb = AmazonDynamoDBClientBuilder.standard() .withRegion(Regions.US_WEST_2) .withCredentials(new ProfileCredentialsProvider("myProfile")) .build();
Note
Les méthodes withXXX
Fluent renvoient l'objet builder
pour vous permettre de chaîner les appels de méthode pour plus de commodité et un code plus lisible. Une fois que vous avez configuré les propriétés souhaitées, vous pouvez appeler la méthode build
pour créer le client. Une fois qu'un client a été créé, il est immuable et tous les appels à setRegion
ou setEndpoint
échoueront.
Un générateur peut créer plusieurs clients avec la même configuration. Lorsque vous écrivez votre application, gardez à l'esprit que le générateur est mutable et n'est pas thread-safe.
Le code suivant utilise le générateur en tant que fabrique pour les instances client.
public class DynamoDBClientFactory { private final AmazonDynamoDBClientBuilder builder = AmazonDynamoDBClientBuilder.standard() .withRegion(Regions.US_WEST_2) .withCredentials(new ProfileCredentialsProvider("myProfile")); public AmazonDynamoDB createClient() { return builder.build(); } }
Le générateur expose également des setters fluides pour ClientConfigurationet RequestMetricCollector, ainsi qu'une liste personnalisée de RequestHandler 2.
Voici un exemple complet qui remplace toutes les propriétés configurables.
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();
Création de clients asynchrones
AWS SDK for Java Il possède des clients asynchrones (ou asynchrones) pour chaque service (sauf pour Amazon S3) et un générateur de clients asynchrones correspondant pour chaque service.
Pour créer un client DynamoDB asynchrone avec la valeur par défaut ExecutorService
AmazonDynamoDBAsync ddbAsync = AmazonDynamoDBAsyncClientBuilder.standard() .withRegion(Regions.US_WEST_2) .withCredentials(new ProfileCredentialsProvider("myProfile")) .build();
Outre les options de configuration prises en charge par le générateur de clients synchrones (ou de synchronisation), le client asynchrone vous permet de définir une personnalisation ExecutorFactorypour modifier ExecutorService
celle utilisée par le client asynchrone. ExecutorFactory
est une interface fonctionnelle, elle interagit donc avec les expressions lambda de Java 8 et les références de méthodes.
Pour créer un client asynchrone avec un exécuteur personnalisé
AmazonDynamoDBAsync ddbAsync = AmazonDynamoDBAsyncClientBuilder.standard() .withExecutorFactory(() -> Executors.newFixedThreadPool(10)) .build();
En utilisant DefaultClient
Les générateurs client synchrones et asynchrones ont une autre méthode nommée defaultClient
. Cette méthode crée un client de service avec la configuration par défaut, en utilisant la chaîne de fournisseurs par défaut pour charger les informations d'identification et le Région AWS. Si les informations d'identification ou la région ne peuvent pas être déterminées à partir de l'environnement dans lequel l'application s'exécute, l'appel à defaultClient
échoue. Voir Utilisation des AWS informations d'identification et Région AWS sélection pour plus d'informations sur la manière dont les informations d'identification et la région sont déterminées.
Pour créer un service client par défaut
AmazonDynamoDB ddb = AmazonDynamoDBClientBuilder.defaultClient();
Cycle de vie des clients
Les clients de service qu'il contient SDK sont compatibles avec les threads et, pour de meilleures performances, vous devez les traiter comme des objets à longue durée de vie. Chaque client possède sa propre ressource de groupe de connexion. Arrêtez explicitement les clients lorsque vous n'en avez plus besoin pour éviter les fuites de ressources.
Pour arrêter explicitement un client, appelez la méthode shutdown
. Une fois la méthode shutdown
appelée, toutes les ressources client sont libérées et le client devient inutilisable.
Pour arrêter un client
AmazonDynamoDB ddb = AmazonDynamoDBClientBuilder.defaultClient(); ddb.shutdown(); // Client is now unusable