Usar perfis - AWS SDK for Java 2.x

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Usar perfis

Ao usar o arquivo compartilhado config e credentials, você pode configurar vários perfis. Isso permite que seu aplicativo use vários conjuntos de configuração de credenciais. O perfil [default] foi mencionado anteriormente. O SDK usa a ProfileCredentialsProviderclasse para carregar configurações de perfis definidos no credentials arquivo compartilhado.

O trecho de código a seguir demonstra como criar um cliente de serviço que usa as configurações definidas como parte do perfil nomeado my_profile.

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

Definir um perfil diferente como padrão

Para definir um perfil diferente do perfil [default] como padrão para seu aplicativo, defina a variável de ambiente AWS_PROFILE com o nome do seu perfil personalizado.

Para definir essa variável no Linux, macOS ou Unix, use export:

export AWS_PROFILE="other_profile"

Para definir essas variáveis no Windows, use :set

set AWS_PROFILE="other_profile"

Como alternativa, defina a propriedade do sistema aws.profile Java com o nome do perfil.

Recarregar credenciais de perfil

Você pode configurar qualquer provedor de credenciais que tenha um método profileFile() em seu construtor para recarregar as credenciais do perfil. Essas classes de perfil de credenciais são: ProfileCredentialsProvider, DefaultCredentialsProvider, InstanceProfileCredentialsProvider e ProfileTokenProvider.

nota

O recarregamento da credencial do perfil funciona somente com as seguintes configurações no arquivo de perfil: aws_access_key_id, aws_secret_access_key e aws_session_token.

Configurações como region, sso_session, sso_account_id e source_profile são ignoradas.

Para configurar um provedor de credenciais compatível para recarregar as configurações do perfil, forneça uma instância do ProfileFileSupplier ao método profileFile() do construtor. O exemplo de código a seguir demonstra um ProfileCredentialsProvider que recarrega as configurações de credenciais do perfil [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() é chamado, o SDK for Java recarrega as configurações. ProfileFileSupplier.defaultSupplier()é uma das várias implementações de conveniência ProfileFileSupplier fornecidas peloSDK. Se seu caso de uso exigir, você pode fornecer sua própria implementação.

O exemplo a seguir mostra o uso do método de conveniência ProfileFileSupplier.reloadWhenModified(). reloadWhenModified() usa um parâmetro Path, o que dá flexibilidade na designação do arquivo de origem para a configuração, em vez do local padrão ~/.aws/credentials (ou config).

As configurações serão recarregadas quando resolveCredentials() forem chamadas somente se SDK determinar que o conteúdo do arquivo foi modificado.

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

O método ProfileFileSupplier.aggregate() mescla o conteúdo de vários arquivos de configuração. Você decide se um arquivo é recarregado por chamada para o resolveCredentials() ou se as configurações de um arquivo são fixadas no momento em que ele foi lido pela primeira vez.

O exemplo a seguir mostra um DefaultCredentialsProvider que mescla as configurações de dois arquivos que contêm configurações de perfil. O SDK recarrega as configurações no arquivo apontado pela credentialsFilePath variável toda vez que resolveCredentials() é chamado e as configurações são alteradas. As configurações do objeto profileFile permanecem as mesmas.

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