Région AWS Sélection - AWS SDK for Java 1. x

Nous avons annoncé la sortie prochaine end-of-support de AWS SDK for Java (v1). Nous vous recommandons de migrer vers la AWS SDK for Java version v2. Pour les dates, les détails supplémentaires et les informations sur la façon de migrer, reportez-vous à l'annonce associée.

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égion AWS Sélection

Les régions vous permettent d'accéder à AWS des services qui résident physiquement dans une zone géographique spécifique. Cela peut être utile pour la redondance et pour maintenir vos données et vos applications en cours d'exécution à proximité de l'endroit où vous-même et vos utilisateurs y accédez.

Vérification de la disponibilité du service dans une région

Pour savoir si un produit spécifique Service AWS est disponible dans une région, utilisez la isServiceSupported méthode de la région que vous souhaitez utiliser.

Region.getRegion(Regions.US_WEST_2) .isServiceSupported(AmazonDynamoDB.ENDPOINT_PREFIX);

Consultez la documentation sur la classe Regions pour les régions que vous pouvez spécifier, et utilisez le préfixe de point de terminaison du service à interroger. Chaque préfixe de point de terminaison du service est défini dans l'interface du service. Par exemple, le préfixe du DynamoDB point de terminaison est défini dans la AmazonDynamobase de données.

Choisir une région

À partir de la version 1.4 du AWS SDK for Java, vous pouvez spécifier un nom de région et le SDK choisira automatiquement un point de terminaison approprié pour vous. Pour choisir le point de terminaison vous-même, consultez Choix d'un point de terminaison spécifique.

Pour définir explicitement une région, nous vous recommandons d'utiliser l'énumération Regions. Il s'agit d'une énumération de toutes les régions disponibles publiquement. Pour créer un client avec une région à partir de l'énumération, utilisez le code suivant.

AmazonEC2 ec2 = AmazonEC2ClientBuilder.standard() .withRegion(Regions.US_WEST_2) .build();

Si la région que vous essayez d'utiliser n'est pas dans l'énumération Regions, vous pouvez définir la région à l'aide d'une chaîne représentant le nom de la région.

AmazonEC2 ec2 = AmazonEC2ClientBuilder.standard() .withRegion("{region_api_default}") .build();
Note

Une fois que vous avez créé un client avec le générateur, il est immuable et la région ne peut pas être modifiée. Si vous travaillez avec plusieurs clients Régions AWS pour le même service, vous devez créer plusieurs clients, un par région.

Choix d'un point de terminaison spécifique

Chaque AWS client peut être configuré pour utiliser un point de terminaison spécifique dans une région en appelant la withEndpointConfiguration méthode lors de la création du client.

Par exemple, pour configurer le Amazon S3 client afin qu'il utilise la région Europe (Irlande), utilisez le code suivant.

AmazonS3 s3 = AmazonS3ClientBuilder.standard() .withEndpointConfiguration(new EndpointConfiguration( "https://s3.eu-west-1.amazonaws.com", "eu-west-1")) .withCredentials(CREDENTIALS_PROVIDER) .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.

Déterminer automatiquement la région à partir de l'environnement

Important

Cette section s'applique uniquement lors de l'utilisation d'un générateur de clients pour accéder aux AWS services. AWS les clients créés à l'aide du constructeur client ne détermineront pas automatiquement la région à partir de l'environnement et utiliseront à la place la région du SDK par défaut (UseAst1).

Lorsque vous exécutez Lambda Amazon EC2 ou Lambda, vous souhaiterez peut-être configurer les clients pour qu'ils utilisent la même région que celle sur laquelle votre code s'exécute. Votre code est ainsi dissocié de l'environnement d'exécution et le déploiement de votre application sur plusieurs régions dans le but de réduire la latence ou la redondance s'en trouve simplifié.

Vous devez utiliser les générateurs clients pour que le kit SDK détecte automatiquement la région dans laquelle votre code s'exécute.

Pour utiliser la chaîne du fournisseur d'informations d'identification/de région par défaut et déterminer la région à partir de l'environnement, utilisez la méthode defaultClient du générateur client.

AmazonEC2 ec2 = AmazonEC2ClientBuilder.defaultClient();

Cette solution est identique à l'utilisation de standard suivi par build.

AmazonEC2 ec2 = AmazonEC2ClientBuilder.standard() .build();

Si vous ne définissez pas explicitement une région à l'aide des méthodes withRegion, le kit SDK consulte la chaîne du fournisseur de région par défaut afin d'essayer de déterminer la région à utiliser.

Chaîne du fournisseur de région par défaut

Le processus de recherche d'une région est le suivant :

  1. Toute région explicite définie en utilisant withRegion ou setRegion sur le générateur lui-même prévaut sur toute autre région.

  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

    Cette variable d'environnement est définie par le Lambda conteneur.

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

    • 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 personnaliser le profil chargé par le SDK.

  4. Le SDK tente d'utiliser le service de métadonnées d' Amazon EC2 instance pour déterminer la région de l' Amazon EC2 instance en cours d'exécution.

  5. Si le kit SDK n'a toujours pas trouvé de région par ce biais, la création du client échoue et une exception est levée.

Lors du développement d' AWS applications, une approche courante consiste à utiliser le fichier de configuration partagé (décrit dans Utilisation de la chaîne de fournisseurs d'informations d'identification par défaut) 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 lors de l'exécution sur une AWS infrastructure. La création du client s'en trouve ainsi grandement simplifiée et votre application demeure portable.