Região da AWS Seleção - AWS SDK for Java 1.x

Anunciamos o próximo end-of-support para AWS SDK for Java (v1). Recomendamos migrar para o AWS SDK for Java v2. Para saber as datas e receber detalhes adicionais e informações sobre como migrar, consulte o anúncio vinculado.

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

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

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

Escolher uma região

A partir da versão 1.4 do AWS SDK for 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.

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

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

Importante

Esta seção se aplica somente ao usar um construtor de clientes 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 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 Lambda contêiner.

  3. O SDK verifica o arquivo de configuração AWS compartilhado (geralmente localizado em~/.aws/config). Se a propriedade da região estiver presente, o SDK a usará.

    • 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 Amazon EC2 instância para determinar a região da instância em execução Amazon EC2 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.

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