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.
Régler le Région AWS pour AWS SDK for Java 2.x
Les clients du SDK se connectent à un Service AWS in spécifique Région AWS que vous spécifiez lors de la création du client. Cette configuration permet à votre application d'interagir avec AWS les ressources de cette zone géographique. Lorsque vous créez un client de service sans définir explicitement de région, le SDK utilise la région par défaut de votre configuration externe.
Configurez explicitement un Région AWS
Pour définir explicitement une région, nous vous recommandons d'utiliser les constantes définies dans la classe Region
Pour créer un client avec une région énumérée à partir de la classe, utilisez la region
méthode du générateur de clients.
Ec2Client ec2 = Ec2Client.builder() .region(Region.US_WEST_2) .build();
Si la région que vous souhaitez utiliser n'est pas l'une des énumérations de la Region
classe, vous pouvez créer une nouvelle région à l'aide de la méthode statiqueof
. Cette méthode vous permet d'accéder à de nouvelles régions sans mettre à niveau le SDK.
Region newRegion = Region.of("us-east-42"); Ec2Client ec2 = Ec2Client.builder() .region(newRegion) .build();
Note
Une fois que vous avez créé un client avec le générateur, il est immuable et Région AWS ne peut pas être modifié. Si vous devez travailler avec plusieurs clients Régions AWS pour le même service, vous devez créer plusieurs clients, un par région.
Laissez le SDK déterminer automatiquement la valeur par défaut à Région AWS partir de l'environnement
Lorsque votre code s'exécute sur Amazon EC2 ou AWS Lambda, vous souhaiterez peut-être configurer les clients pour qu'ils utilisent le même système Région AWS que celui sur lequel votre code s'exécute. Cela dissocie votre code de l'environnement dans lequel il s'exécute et facilite le déploiement de votre application sur plusieurs Régions AWS sites afin de réduire la latence ou la redondance.
Pour utiliser la chaîne de Région AWS fournisseurs par défaut afin de déterminer la région à partir de l'environnement, utilisez la create
méthode du générateur de clients.
Ec2Client ec2 = Ec2Client.create();
Vous pouvez également configurer le client d'une autre manière, mais vous ne pouvez pas définir la région. Le SDK récupère le en Région AWS utilisant la chaîne de fournisseurs de régions par défaut :
Ec2Client ec2Client = Ec2Client.builder() .credentialsProvider(ProfileCredentialsProvider.builder() .profileName("my-profile") .build()) .build();
Si vous ne définissez pas explicitement un Région AWS en utilisant la region
méthode, le SDK consulte la chaîne de fournisseurs de régions par défaut pour déterminer la région à utiliser.
Comprendre la chaîne de Région AWS fournisseurs par défaut
Le SDK suit les étapes suivantes pour rechercher un Région AWS :
-
Toute région explicite définie à l'aide de la
region
méthode sur le générateur lui-même a priorité sur toute autre option. -
Le SDK recherche la propriété du système JVM
aws.region
et utilise sa valeur si elle est trouvée. -
La variable d'environnement
AWS_REGION
est contrôlée. Si elle est définie, cette région est utilisée pour configurer le client.Note
Le Lambda conteneur définit cette variable d'environnement.
-
Le SDK vérifie le profil actif dans les fichiers de configuration et d'identification AWS partagés. Si la
region
propriété est présente, le SDK l'utilise.Le
default
profil est le profil actif sauf s'il est remplacé par une variable d'AWS_PROFILE
environnement ou une propriété du systèmeaws.profile
JVM. Si le SDK trouve laregion
propriété dans les deux fichiers pour le même profil (y compris ledefault
profil), il utilise la valeur du fichier d'informations d'identification partagé. -
Le SDK tente d'utiliser le service de métadonnées d' Amazon EC2 instance (IMDS) pour déterminer la région de l'instance en cours d'exécution Amazon EC2 .
-
Pour plus de sécurité, vous devez empêcher le SDK d'essayer d'utiliser la version 1 d'IMDS. Pour désactiver la version 1, vous utilisez le même paramètre que celui décrit dans la Acquérir des informations d'identification de rôle IAM en toute section.
-
-
Si le SDK n'a toujours pas trouvé de région à ce stade, la création du client échoue avec une exception.
Lors du développement d' AWS applications, une approche courante consiste à utiliser le fichier de configuration partagé pour définir la région pour le développement local, et à s'appuyer sur la chaîne de fournisseurs de régions par défaut pour déterminer la région lorsque l'application s'exécute sur l' AWS infrastructure. La création du client s'en trouve ainsi grandement simplifiée et votre application demeure portable.
Vérifiez si un service est disponible dans une région
Pour voir si une donnée Service AWS est disponible dans une région, utilisez la serviceMetadata
méthode statique sur un client de service :
DynamoDbClient.serviceMetadata().regions().forEach(System.out::println);
L'extrait de code précédent affiche une longue liste de Région AWS codes dotés du service DynamoDB :
af-south-1 ap-east-1 ap-northeast-1 ap-northeast-2 ap-northeast-3 ap-south-1 ap-south-2 ap-southeast-1 ...
Vous pouvez utiliser un code pour rechercher l'énumération de la classe Region
Par exemple, si vous souhaitez utiliser DynamoDB dans la région avec le ap-northeast-2
code, créez votre client DynamoDB avec au moins la configuration suivante :
DynamoDbClient ddb = DynamoDbClient.builder() .region(Region.AP_NORTHEAST_2) .build();
Choisissez un point de terminaison spécifique
Dans certaines situations, par exemple pour tester les fonctionnalités d'aperçu d'un service avant que les fonctionnalités ne soient mises à disposition générale, vous devrez peut-être spécifier un point de terminaison spécifique dans une région. Dans ces situations, les clients du service peuvent être configurés en appelant la endpointOverride
méthode.
Par exemple, pour configurer un Amazon EC2 client afin qu'il utilise la région Europe (Irlande) avec un point de terminaison spécifique, utilisez le code suivant.
Ec2Client ec2 = Ec2Client.builder() .region(Region.EU_WEST_1) .endpointOverride(URI.create("https://ec2.eu-west-1.amazonaws.com")) .build();
Voir Régions et points de terminaison pour la liste actuelle des régions et leurs points de terminaison correspondants pour tous les AWS services.