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 ProfileCredentialsProvidercredentials
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_PROFILE
environnement 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 : ProfileCredentialsProvider
DefaultCredentialsProvider
,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_id
aws_secret_access_key
, et. aws_session_token
Les paramètres tels queregion
, sso_session
sso_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 ProfileFileSupplier
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 pratiquesProfileFileSupplier
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'profileFile
objet 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. */