

O AWS SDK para Java 1.x chegou end-of-support em 31 de dezembro de 2025. Recomendamos que você migre para o [AWS SDK for Java 2.x](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/home.html) para continuar recebendo novos recursos, melhorias de disponibilidade e atualizações de segurança.

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

# Região da AWS Seleção
<a name="java-dg-region-selection"></a>

As regiões permitem que você acesse AWS serviços que residem fisicamente em uma área geográfica específica. Isso pode ser útil para redundância e para manter os dados e os aplicativos em execução próximo ao lugar onde você e os usuários os acessarão.

## Verificar disponibilidade do serviço em uma região
<a name="region-selection-query-service"></a>

Para ver se um determinado AWS service (Serviço da AWS) está disponível em uma região, use o `isServiceSupported` método na região que você gostaria de usar.

```
Region.getRegion(Regions.US_WEST_2)
    .isServiceSupported(AmazonDynamoDB.ENDPOINT_PREFIX);
```

Consulte a documentação da classe [Regions](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/regions/Regions.html) das regiões que você pode especificar e usar o prefixo de endpoint do serviço a ser consultado. O prefixo de endpoint de cada serviço é definido na interface de serviço. [Por exemplo, o prefixo do DynamoDB endpoint é definido em AmazonDynamo DB.](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/dynamodbv2/AmazonDynamoDB.html)

## Escolher uma região
<a name="region-selection-choose-region"></a>

A partir da versão 1.4 do AWS SDK para Java, você pode especificar um nome de região e o SDK escolherá automaticamente um endpoint apropriado para você. Para escolher o endpoint por conta própria, consulte [Escolher um endpoint específico](#region-selection-choose-endpoint).

Para definir explicitamente uma região, recomendamos usar o enum [Regions](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/regions/Regions.html). Esta é uma enumeração de todas as regiões disponíveis publicamente. Para criar um cliente com uma região do enum, use o código a seguir.

```
AmazonEC2 ec2 = AmazonEC2ClientBuilder.standard()
                    .withRegion(Regions.US_WEST_2)
                    .build();
```

Se a região que estiver tentando usar não estiver no enum `Regions`, será possível definir a região usando uma *string* que represente o nome da região.

```
AmazonEC2 ec2 = AmazonEC2ClientBuilder.standard()
                    .withRegion("{region_api_default}")
                    .build();
```

**nota**  
Depois que você compilar um cliente com o compilador, ele será *imutável*, e a região *não poderá ser alterada*. Se você estiver trabalhando com vários Regiões da AWS para o mesmo serviço, deverá criar vários clientes — um por região.

## Escolher um endpoint específico
<a name="region-selection-choose-endpoint"></a>

Cada AWS cliente pode ser configurado para usar um *endpoint específico* em uma região chamando o `withEndpointConfiguration` método ao criar o cliente.

Por exemplo, para configurar o Amazon S3 cliente para usar a região da Europa (Irlanda), use o código a seguir.

```
AmazonS3 s3 = AmazonS3ClientBuilder.standard()
     .withEndpointConfiguration(new EndpointConfiguration(
          "https://s3.eu-west-1.amazonaws.com",
          "eu-west-1"))
     .withCredentials(CREDENTIALS_PROVIDER)
     .build();
```

Consulte [Regiões e endpoints](https://docs.aws.amazon.com/general/latest/gr/rande.html) para ver a lista atual de regiões e seus endpoints correspondentes para todos os AWS serviços.

## Determinar automaticamente a região pelo ambiente
<a name="automatically-determine-the-aws-region-from-the-environment"></a>

**Importante**  
Esta seção se aplica somente ao usar um [construtor de clientes](creating-clients.md) para acessar AWS serviços. AWS os clientes criados usando o construtor do cliente não determinarão automaticamente a região do ambiente e, em vez disso, usarão a região *padrão* do SDK ()USEast1.

Ao executar no Lambda Amazon EC2 ou no Lambda, talvez você queira configurar os clientes para usar a mesma região em que seu código está sendo executado. Isso desvincula o código do ambiente no qual está em execução e facilita ainda mais a implantação do aplicativo em várias regiões tendo em vista menos latência ou redundância.

 *Você deve usar compiladores de cliente para que o SDK detecte automaticamente a região onde o código está sendo executado.* 

Para usar a cadeia de credential/region fornecedores padrão para determinar a região a partir do ambiente, use o `defaultClient` método do construtor do cliente.

```
AmazonEC2 ec2 = AmazonEC2ClientBuilder.defaultClient();
```

É o mesmo que usar `standard` seguido de `build`.

```
AmazonEC2 ec2 = AmazonEC2ClientBuilder.standard()
                    .build();
```

Se você não definir explicitamente uma região usando os métodos `withRegion`, o SDK consultará a cadeia de fornecedores da região padrão para tentar determinar a região a ser usada.

### Cadeia de fornecedores da região padrão
<a name="default-region-provider-chain"></a>

 **Este é o processo de pesquisa da região:** 

1. Qualquer região explícita definida usando-se `withRegion` ou `setRegion` no compilador propriamente dito tem precedência sobre todo o resto.

1. A variável de ambiente `AWS_REGION` está marcada. Se estiver definida, essa região será usada para configurar o cliente.
**nota**  
Essa variável de ambiente é definida pelo Lambda contêiner.

1. O SDK verifica o arquivo de configuração AWS compartilhado (geralmente localizado em`~/.aws/config`). Se a propriedade da *região* estiver presente, ela será usada pelo SDK.
   + 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` pode ser usada para personalizar o perfil carregado pelo SDK.

1. O SDK tenta usar o serviço de metadados da Amazon EC2 instância para determinar a região da instância em execução Amazon EC2 no momento.

1. Se o SDK ainda não tiver encontrado uma região a esta altura, 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 [Usando a cadeia de fornecedores de credenciais padrão](credentials.md#credentials-default)) 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 executada na AWS infraestrutura. Isso simplifica muito a criação do cliente e mantém a portabilidade do aplicativo.