Região da AWSSeleção de - AWS SDK para Java 1.x

O AWS SDK para Java 1.x entrou no modo de manutenção em 31 de julho de 2024 e o fim do suporte está previsto para 31 de dezembro de 2025. Recomendamos que você migre para o AWS SDK for Java 2.x para continuar recebendo novos recursos, melhorias de disponibilidade e atualizações de segurança.

Região da AWSSeleção de

As regiões permitem acessar os serviços da AWS que residam 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

Para saber se um AWS service (Serviço da AWS) específico está disponível em uma região, use o método isServiceSupported na região que você deseja usar.

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

Consulte a documentação da classe Regions 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 de endpoint do DynamoDB é definido no AmazonDynamoDB.

Escolher uma região

Desde a versão 1.4 do AWS SDK para Java, você pode especificar o nome de uma região, e o SDK escolherá automaticamente um endpoint apropriado. Para escolher o endpoint por conta própria, consulte Escolher um endpoint específico.

Para definir explicitamente uma região, recomendamos usar o enum Regions. 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 estiver trabalhando com várias Regiões da AWS para o mesmo serviço, você deverá criar vários clientes, um por região.

Escolher um endpoint específico

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

Por exemplo, para configurar o cliente do Amazon S3 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 para obter a lista atual de regiões e os endpoints correspondentes de todos os serviços da AWS.

Determinar automaticamente a região pelo ambiente

Importante

Esta seção se aplica apenas ao usar o criador de cliente para acessar os serviços da AWS.Os clientes da AWS criados usando o construtor de cliente não determinarão automaticamente a região do ambiente e, em vez disso, usarão a região do SDK padrão (USEast1).

Ao executar no Amazon EC2 ou no Lambda, você pode configurar os clientes para usar a mesma região na qual o código está em execução. 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 provedores de credencial/região padrão a fim de determinar a região do ambiente, use o método defaultClient do compilador de 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

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.

  2. 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 contêiner do Lambda.

  3. O SDK verifica o arquivo de configuração compartilhado da AWS (normalmente 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.

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

  5. Se o SDK ainda não tiver encontrado uma região a esta altura, a criação do cliente falhará com uma exceção.

Durante o desenvolvimento de aplicativos da AWS, uma abordagem comum é usar o arquivo de configuração compartilhado (descrito em Usar a cadeia de fornecedores de credencial padrão) a fim de definir a região para o desenvolvimento local e contar com a cadeia de fornecedores da região padrão para determinar a região durante a execução na infraestrutura da AWS. Isso simplifica muito a criação do cliente e mantém a portabilidade do aplicativo.