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 ProfileCredentialsProvidercredentials
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
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ênciaProfileFileSupplier
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. */