Usa i profili - AWS SDK for Java 2.x

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Usa i profili

Utilizzando il credentials file condiviso config e, puoi configurare diversi profili. Ciò consente all'applicazione di utilizzare più set di configurazione delle credenziali. Il [default] profilo è stato menzionato in precedenza. L'SDK utilizza la ProfileCredentialsProviderclasse per caricare le impostazioni dai profili definiti nel credentials file condiviso.

Il seguente frammento di codice mostra come creare un client di servizio che utilizzi le impostazioni definite come parte del profilo denominato. my_profile

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

Imposta un profilo diverso come predefinito

Per impostare un profilo diverso dal [default] profilo come predefinito per l'applicazione, imposta la variabile di AWS_PROFILE ambiente sul nome del profilo personalizzato.

Per impostare questa variabile su Linux, macOS o Unix, usa: export

export AWS_PROFILE="other_profile"

Per impostare queste variabili su Windows, utilizza set:

set AWS_PROFILE="other_profile"

In alternativa, impostate la proprietà del sistema aws.profile Java sul nome del profilo.

Ricarica le credenziali del profilo

È possibile configurare qualsiasi provider di credenziali che disponga di un profileFile() metodo nel relativo generatore per ricaricare le credenziali del profilo. Queste classi di profilo di credenziali sono:,, e ProfileCredentialsProvider DefaultCredentialsProvider InstanceProfileCredentialsProvider ProfileTokenProvider.

Nota

Il ricaricamento delle credenziali del profilo funziona solo con le seguenti impostazioni nel file di profilo:aws_access_key_id,, aws_secret_access_key e. aws_session_token

Impostazioni comeregion, sso_sessionsso_account_id, e source_profile vengono ignorate.

Per configurare un provider di credenziali supportato per ricaricare le impostazioni del profilo, fornisci un'istanza del metodo ProfileFileSupplierbuilder. profileFile() Il seguente esempio di codice mostra un ProfileCredentialsProvider che ricarica le impostazioni delle credenziali dal profilo. [default]

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(). */

Quando ProfileCredentialsProvider.resolveCredentials() viene chiamato, l'SDK for Java ricarica le impostazioni. ProfileFileSupplier.defaultSupplier()è una delle numerose implementazioni pratiche ProfileFileSupplier fornite dall'SDK. Se il tuo caso d'uso lo richiede, puoi fornire la tua implementazione.

L'esempio seguente mostra l'uso del metodo di ProfileFileSupplier.reloadWhenModified() convenienza. reloadWhenModified()utilizza un Path parametro, che offre flessibilità nella designazione del file sorgente per la configurazione anziché la posizione standard ~/.aws/credentials (oconfig).

Le impostazioni verranno ricaricate quando resolveCredentials() viene chiamata solo se SDK determina che il contenuto del file è stato modificato.

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. */

Il ProfileFileSupplier.aggregate() metodo unisce il contenuto di più file di configurazione. Siete voi a decidere se ricaricare un file per chiamata resolveCredentials() o se le impostazioni di un file vengono corrette al momento della prima lettura.

L'esempio seguente mostra un file DefaultCredentialsProvider che unisce le impostazioni di due file che contengono le impostazioni del profilo. L'SDK ricarica le impostazioni nel file a cui fa riferimento la credentialsFilePath variabile ogni volta che resolveCredentials() viene chiamata e le impostazioni vengono modificate. Le impostazioni dell'profileFileoggetto rimangono le stesse.

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. */