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á.
Configurando o Região da AWS para o AWS SDK for Java 2.x
Os clientes do SDK se conectam a um AWS service (Serviço da AWS) em um específico Região da AWS que você especifica ao criar o cliente. Essa configuração permite que seu aplicativo interaja com AWS recursos nessa área geográfica. Quando você cria um cliente de serviço sem definir explicitamente uma região, o SDK usa a região padrão da sua configuração externa.
Configurar explicitamente uma Região da AWS
Para definir explicitamente uma região, recomendamos usar as constantes definidas na classe Região
Para criar um cliente com uma região enumerada da classe, use o método region
do criador do cliente.
Ec2Client ec2 = Ec2Client.builder() .region(Region.US_WEST_2) .build();
Se a região que você deseja usar não for uma das enumerações na classe Region
, será possível criar uma região usando o método of
estático. Esse recurso permite acessar as novas regiões sem atualizar o SDK.
Region newRegion = Region.of("us-east-42"); Ec2Client ec2 = Ec2Client.builder() .region(newRegion) .build();
nota
Depois de criar um cliente com o construtor, ele é imutável e Região da AWS não pode ser alterado. Se precisar trabalhar com vários Regiões da AWS para o mesmo serviço, crie vários clientes, um por região.
Deixe que o SDK determine automaticamente o padrão Região da AWS do ambiente
Quando seu código é executado em Amazon EC2 ou AWS Lambda, talvez você queira configurar os clientes para usarem o mesmo em Região da AWS que seu código está sendo executado. Isso separa seu código do ambiente em que ele está sendo executado e facilita a implantação de seu aplicativo em vários Regiões da AWS para reduzir a latência ou a redundância.
Para usar a cadeia de Região da AWS fornecedores padrão para determinar a região a partir do ambiente, use o create
método do construtor do cliente.
Ec2Client ec2 = Ec2Client.create();
Você também pode configurar o cliente de outras formas, mas não definir a Região. O SDK seleciona o Região da AWS usando a cadeia de fornecedores da região padrão:
Ec2Client ec2Client = Ec2Client.builder() .credentialsProvider(ProfileCredentialsProvider.builder() .profileName("my-profile") .build()) .build();
Se você não definir explicitamente um Região da AWS usando o region
método, o SDK consultará a cadeia de fornecedores da região padrão para determinar a região a ser usada.
Entendendo a cadeia Região da AWS de fornecedores padrão
O SDK segue as seguintes etapas para procurar uma Região da AWS:
-
Qualquer região explícita definida usando o
region
método no próprio construtor tem precedência sobre qualquer outra coisa. -
O SDK procura a propriedade do sistema JVM
aws.region
e usa seu valor, se encontrado. -
A variável de ambiente
AWS_REGION
está marcada. Se estiver definida, essa região será usada para configurar o cliente.nota
O Lambda contêiner define essa variável de ambiente.
-
O SDK verifica o perfil ativo nos AWS arquivos compartilhados de configuração e credenciais. Se a
region
propriedade estiver presente, o SDK a usará.O
default
perfil é o perfil ativo, a menos que seja substituído pela variável deAWS_PROFILE
ambiente ou pela propriedade do sistemaaws.profile
JVM. Se o SDK encontrar aregion
propriedade nos dois arquivos do mesmo perfil (incluindo odefault
perfil), o SDK usará o valor no arquivo de credenciais compartilhado. -
O SDK tenta usar o serviço de metadados da Amazon EC2 instância (IMDS) para determinar a região da instância em execução no momento. Amazon EC2
-
Para maior segurança, você deve impedir que o SDK tente usar a versão 1 do IMDS. Você usa a mesma configuração para desativar a versão 1 descrita na Adquira com segurança as credenciais da função do IAM seção.
-
-
Se, a essa altura, o SDK ainda não tiver encontrado uma região, a criação do cliente falhará com uma exceção.
Ao desenvolver AWS aplicativos, uma abordagem comum é usar o arquivo de configuração compartilhado para definir a região para o desenvolvimento local e confiar na cadeia de fornecedores da região padrão para determinar a região quando o aplicativo é executado na AWS infraestrutura. Isso simplifica muito a criação do cliente e mantém a portabilidade do aplicativo.
Verifique se um serviço está disponível em uma região
Para ver se um determinado AWS service (Serviço da AWS) está disponível em uma região, use o serviceMetadata
método estático em um cliente de serviço:
DynamoDbClient.serviceMetadata().regions().forEach(System.out::println);
O trecho anterior imprime uma longa lista de Região da AWS códigos que têm o serviço DynamoDB:
af-south-1 ap-east-1 ap-northeast-1 ap-northeast-2 ap-northeast-3 ap-south-1 ap-south-2 ap-southeast-1 ...
Você pode usar um código para pesquisar a enumeração da classe Region
Por exemplo, se você quiser trabalhar com o DynamoDB na região com o ap-northeast-2
código, crie seu cliente do DynamoDB com pelo menos a seguinte configuração:
DynamoDbClient ddb = DynamoDbClient.builder() .region(Region.AP_NORTHEAST_2) .build();
Escolher um endpoint específico
Em determinadas situações, como testar os recursos de pré-visualização de um serviço antes que os recursos se tornem disponíveis ao público em geral, talvez seja necessário especificar um endpoint em uma região. Nessas situações, os clientes de serviço podem ser configurados chamando o método endpointOverride
.
Por exemplo, para configurar um Amazon EC2 cliente para usar a região da Europa (Irlanda) com um endpoint específico, use o código a seguir.
Ec2Client ec2 = Ec2Client.builder() .region(Region.EU_WEST_1) .endpointOverride(URI.create("https://ec2.eu-west-1.amazonaws.com")) .build();
Consulte Regiões e endpoints para ver a lista atual de regiões e seus endpoints correspondentes para todos os AWS serviços.