Use Regiões da AWS - 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á.

Use Regiões da AWS

Regiões da AWS permitir que os clientes do serviço acessem o Serviços da AWS que reside fisicamente em uma área geográfica específica.

Configurar explicitamente uma Região da AWS

Para definir explicitamente uma região, recomendamos usar as constantes definidas na classe Região. Esta é uma enumeração de todas as regiões disponíveis publicamente.

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.

Deixar o SDK determinar automaticamente a região pelo 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 provedores de credencial/região padrão a fim de determinar a região do ambiente, use o método create do criador de clientes.

Ec2Client ec2 = Ec2Client.create();

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.

Entender a cadeia de provedores de região padrão

O SDK segue as seguintes etapas para procurar uma Região da AWS :

  1. Qualquer região explícita definida usando-se region no criador propriamente dito tem precedência sobre todo o resto.

  2. 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.

  3. O SDK verifica o arquivo de configuração AWS compartilhado e o arquivo de credenciais compartilhados (geralmente localizados em ~/.aws/config e~/.aws/credentials). Se a region propriedade estiver presente, o SDK a usará.

    • Se o SDK encontrar a region propriedade nos dois arquivos do mesmo perfil (incluindo o default perfil), o SDK usará o valor no arquivo de credenciais compartilhado.

    • A variável de ambiente AWS_CONFIG_FILE pode ser usada para personalizar o local do arquivo de configuração compartilhado.

    • A variável de ambiente AWS_PROFILE ou a propriedade do sistema aws.profile podem ser usadas para especificar o perfil carregado pelo SDK.

  4. 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

  5. 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 (descrito em Ordem de recuperação de credenciais) 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.

Conferir a disponibilidade do serviço em uma região

Para ver se um determinado AWS service (Serviço da AWS) está disponível em uma região, use o region método serviceMetadata and no cliente de serviço.

DynamoDbClient.serviceMetadata().regions().forEach(System.out::println);

Consulte a documentação da classe Region para saber o Regiões da AWS que você pode especificar e usar o prefixo do endpoint do serviço para consultar.

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.