Profils d'utilisation - 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.

Profils d'utilisation

À l'aide du credentials fichier partagé config et du fichier, vous pouvez configurer plusieurs profils. Cela permet à votre application d'utiliser plusieurs ensembles de configuration d'informations d'identification. Le [default] profil a été mentionné précédemment. Le SDK utilise la ProfileCredentialsProviderclasse pour charger les paramètres à partir des profils définis dans le credentials fichier partagé.

L'extrait de code suivant montre comment créer un client de service qui utilise les paramètres définis dans le cadre du profil nommé. my_profile

Region region = Region.US_WEST_2; DynamoDbClient ddb = DynamoDbClient.builder() .region(region) .credentialsProvider(ProfileCredentialsProvider.create("my_profile")) .build();

Définir un profil différent comme profil par défaut

Pour définir un profil autre que le [default] profil par défaut pour votre application, définissez la variable d'AWS_PROFILEenvironnement sur le nom de votre profil personnalisé.

Pour définir cette variable sous Linux, macOS ou Unix, utilisez export :

export AWS_PROFILE="other_profile"

Pour définir ces variables sous Windows, utilisez set :

set AWS_PROFILE="other_profile"

Vous pouvez également définir la propriété système aws.profile Java sur le nom du profil.

Recharger les informations d'identification du profil

Vous pouvez configurer n'importe quel fournisseur d'informations d'identification dont le générateur dispose d'une profileFile() méthode permettant de recharger les informations d'identification du profil. Ces classes de profil d'identification sont les suivantes : ProfileCredentialsProviderDefaultCredentialsProvider,InstanceProfileCredentialsProvider, et ProfileTokenProvider.

Note

Le rechargement des informations d'identification du profil ne fonctionne qu'avec les paramètres suivants du fichier de profil : aws_access_key_idaws_secret_access_key, et. aws_session_token

Les paramètres tels queregion, sso_sessionsso_account_id, et source_profile sont ignorés.

Pour configurer un fournisseur d'informations d'identification pris en charge afin de recharger les paramètres de profil, fournissez une instance ProfileFileSupplierde la méthode profileFile() Builder. L'exemple de code suivant illustre un système ProfileCredentialsProvider qui recharge les paramètres d'identification à partir du [default] profil.

ProfileCredentialsProvider provider = ProfileCredentialsProvider .builder() .profileFile(ProfileFileSupplier.defaultSupplier()) .build(); // Set up a service client with the provider instance. DynamoDbClient dynamoDbClient = DynamoDbClient.builder() .region(Region.US_EAST_1) .credentialsProvider(provider) .build(); /* Before dynamoDbClient makes a request, it reloads the credentials settings by calling provider.resolveCredentials(). */

Lorsqu'il ProfileCredentialsProvider.resolveCredentials() est appelé, le SDK for Java recharge les paramètres. ProfileFileSupplier.defaultSupplier()est l'une des nombreuses implémentations pratiques ProfileFileSupplier fournies par le SDK. Si votre cas d'utilisation l'exige, vous pouvez fournir votre propre implémentation.

L'exemple suivant montre l'utilisation de la méthode ProfileFileSupplier.reloadWhenModified() pratique. reloadWhenModified()prend un Path paramètre, ce qui vous permet de désigner le fichier source pour la configuration plutôt que l'emplacement standard ~/.aws/credentials (ouconfig).

Les paramètres seront rechargés lors resolveCredentials() de l'appel uniquement si le SDK détermine que le contenu du fichier a été modifié.

Path credentialsFilePath = ... ProfileCredentialsProvider provider = ProfileCredentialsProvider .builder() .profileFile(ProfileFileSupplier.reloadWhenModified(credentialsFilePath, ProfileFile.Type.CREDENTIALS)) .profileName("my-profile") .build(); /* A service client configured with the provider instance calls provider.resolveCredential() before each request. */

Le ProfileFileSupplier.aggregate() procédé fusionne le contenu de plusieurs fichiers de configuration. Vous décidez si un fichier est rechargé par appel à resolveCredentials() ou si les paramètres d'un fichier sont fixés au moment de sa première lecture.

L'exemple suivant montre un DefaultCredentialsProvider qui fusionne les paramètres de deux fichiers contenant des paramètres de profil. Le SDK recharge les paramètres dans le fichier pointé par la credentialsFilePath variable chaque fois qu'resolveCredentials()il est appelé et que les paramètres sont modifiés. Les paramètres de l'profileFileobjet restent les mêmes.

Path credentialsFilePath = ...; ProfileFile profileFile = ...; DefaultCredentialsProvider provider = DefaultCredentialsProvider .builder() .profileFile(ProfileFileSupplier.aggregate( ProfileFileSupplier.reloadWhenModified(credentialsFilePath, ProfileFile.Type.CREDENTIALS), ProfileFileSupplier.fixedProfileFile(profileFile))) .profileName("my-profile") .build(); /* A service client configured with the provider instance calls provider.resolveCredential() before each request. */