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.
Configuration des clients de service dans le code du AWS SDK for Java 2.x
Au lieu ou en plus de la configuration externe des clients de service, vous pouvez les configurer par programmation dans le code.
En configurant les clients de service dans le code, vous contrôlez avec précision les nombreuses options qui s'offrent à vous. La plupart des configurations que vous pouvez définir en externe peuvent également être définies dans le code.
Configuration de base dans le code
Par exemple, l'extrait de code suivant définit le Région AWS to EU_SOUTH_2
pour un client de service Amazon S3 :
S3Client s3Client = S3Client.builder() .region(Region.EU_SOUTH_2) .build();
L'extrait précédent montre la méthode d'usine statique,. builder()
La builder()
méthode renvoie un builder
objet qui vous permet de personnaliser le client de service. Les méthodes Fluent Setter renvoient l'builder
objet (dans ce cas, une S3ClientBuilder
build()
méthode pour créer le client.
Configuration avancée dans le code
L'extrait suivant présente des options de configuration supplémentaires :
ClientOverrideConfiguration clientOverrideConfiguration = ClientOverrideConfiguration.builder() .apiCallAttemptTimeout(Duration.ofSeconds(1)) .addMetricPublisher(CloudWatchMetricPublisher.create()) .build(); S3Client s3Client = S3Client.builder() .region(Region.EU_SOUTH_2) .credentialsProvider(EnvironmentVariableCredentialsProvider.create()) .overrideConfiguration(clientOverrideConfiguration) .httpClientBuilder( ApacheHttpClient.builder() .maxConnections(100) .connectionTimeout(Duration.ofSeconds(5)) .proxyConfiguration(ProxyConfiguration.builder() .endpoint(URI.create("http://proxy:8080")) .build()) ).build();
Dans l'extrait précédent, vous pouvez voir plusieurs points d'entrée pour configurer un client de service :
-
ClientOverrideConfiguration.Builder
Objetqui fournit des options de configuration communes à tous les clients de service. Ces paramètres sont des comportements AWS spécifiques, indépendants de toute implémentation HTTP. -
Configuration du client HTTP via une implémentation distincte du générateur de clients HTTP.
C'est un exemple. Le client de service fournit laApacheHttpClient.Builder
httpClientBuilder()
méthode permettant d'associer le client HTTP configuré au client de service. -
Méthodes relatives au générateur de clients
lui-même, telles que region()
etcredentialsProvider()
Au lieu de créer des objets séparés puis de les transmettre aux méthodes du client de service, il AWS SDK for Java 2.x fournit des méthodes qui acceptent les expressions lambda pour créer ces objets en ligne. Les méthodes de configuration du générateur portent le même nom, mais ont des signatures différentes. Par exemple :
La configuration du client S3 présentée précédemment à l'aide de cette approche peut être effectuée en un seul bloc de code :
S3Client s3Client = S3Client.builder() .region(Region.EU_SOUTH_2) .credentialsProvider(EnvironmentVariableCredentialsProvider.create()) .overrideConfiguration(b -> b .apiCallAttemptTimeout(Duration.ofSeconds(1)) .addMetricPublisher(CloudWatchMetricPublisher.create())) .httpClientBuilder(ApacheHttpClient.builder() .maxConnections(100) .connectionTimeout(Duration.ofSeconds(5)) .proxyConfiguration(ProxyConfiguration.builder() .endpoint(URI.create("http://proxy:8080")) .build())) .build();
Options de configuration non disponibles dans le code
Étant donné que le paramètre suivant affecte les processus d'initialisation fondamentaux du SDK, vous pouvez définir les paramètres de configuration suivants uniquement en externe et non dans le code :
Paramètres d'emplacement des fichiers
Ces paramètres contrôlent l'emplacement des fichiers de configuration et d'identification partagés et ne peuvent pas être remplacés par programme une fois que le SDK les a chargés :
-
AWS_CONFIG_FILE (variable d'environnement)/AWS.configFile (propriété du système JVM)
-
AWS_SHARED_CREDENTIALS_FILE (variable d'environnement)/aws. sharedCredentialsFile (propriété du système JVM)
Ces paramètres doivent être définis avant que le SDK ne charge les fichiers de configuration, car ils déterminent où le SDK recherche la configuration. Une fois le SDK initialisé, la modification de ces valeurs n'a aucun effet.
Désactivation du service de métadonnées d'instance
-
AWS_EC2_METADATA_DISABLED (variable d'environnement)/AWS.disableEC2Metadata (propriété du système JVM)
Ce paramètre contrôle si le SDK tente d'utiliser le service de métadonnées d' EC2 instance. Une fois le SDK initialisé, vous ne pouvez pas modifier ce paramètre par programmation.
Sélection du profil
-
AWS_PROFILE(variable d'environnement)/aws.profile (propriété du système JVM)
Ce paramètre indique au SDK le profil à charger à partir des fichiers de configuration et d'identification partagés. Une fois chargée, la modification de cette valeur n'a aucun effet.
Chemins d'identification des conteneurs
-
AWS_CONTAINER_CREDENTIALS_RELATIVE_URI
-
AWS_CONTAINER_IDENTIFIANTS_FULL_URI
-
AWS_CONTAINER_JETON D'AUTORISATION
-
AWS_CONTAINER_FICHIER DE JETON D'AUTORISATION
Vous utilisez ces variables d'environnement pour indiquer au SDK comment récupérer les informations d'identification des services de conteneur. Une fois que la chaîne de fournisseurs d'informations d'identification a été établie lors de l'initialisation du client de service, vous ne pouvez pas modifier ces paramètres.
Sélection de l'implémentation HTTP par défaut
-
SYNC_HTTP_SERVICE_IMPL (variable d'environnement)/software.amazon.awssdk.http.service.impl (propriété du système JVM)
-
ASYNC_HTTP_SERVICE_IMPL (variable d'environnement)/software.amazon.awssdk.http.async.service.impl (propriété du système JVM)
Ces paramètres globaux déterminent l'implémentation du client HTTP que le SDK utilise pour tous les clients de service, à moins qu'ils ne soient remplacés dans le code pour les clients de service individuels. Vous devez les définir avant que le SDK n'initialise ses clients HTTP et ne peuvent pas être modifiés par la suite.