Utiliser Régions AWS - AWS SDK for Java 2.x

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.

Utiliser Régions AWS

Régions AWS permettre aux clients du service d'accéder à ceux Services AWS qui se trouvent physiquement dans une zone géographique spécifique.

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. Il s'agit d'une énumération de toutes les régions disponibles publiquement.

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 région à 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 fournisseurs d'informations d'identification/région par défaut afin de déterminer la région à partir de l'environnement, utilisez la méthode du générateur de create clients.

Ec2Client ec2 = Ec2Client.create();

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 fournisseurs de régions par défaut

Le SDK suit les étapes suivantes pour rechercher un Région AWS  :

  1. Toute région explicite définie en utilisant region le générateur lui-même a priorité sur toute autre chose.

  2. 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.

  3. Le SDK vérifie le fichier de configuration AWS partagé et le fichier d'informations d'identification partagé (généralement situés à l'emplacement ~/.aws/config et~/.aws/credentials). Si la region propriété est présente, le SDK l'utilise.

    • Si le SDK trouve la region propriété dans les deux fichiers pour le même profil (y compris le default profil), il utilise la valeur du fichier d'informations d'identification partagé.

    • La variable d'environnement AWS_CONFIG_FILE peut être utilisée pour personnaliser l'emplacement du fichier de configuration partagé.

    • La variable d'AWS_PROFILEenvironnement ou la propriété aws.profile système peuvent être utilisées pour spécifier le profil chargé par le SDK.

  4. 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 .

  5. 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é (décrit dans Ordre de récupération des informations d'identification) 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 AWS l'infrastructure. La création du client s'en trouve ainsi grandement simplifiée et votre application demeure portable.

Vérifier la disponibilité du service dans une région

Pour voir si un produit particulier Service AWS est disponible dans une région, utilisez la region méthode serviceMetadata et sur le client du service.

DynamoDbClient.serviceMetadata().regions().forEach(System.out::println);

Consultez la documentation de la classe Region pour savoir ce Régions AWS que vous pouvez spécifier et utilisez le préfixe de point de terminaison du service pour effectuer une requête.

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.