Criar clientes de serviç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á.

Criar clientes de serviço

Para fazer solicitações Amazon Web Services, primeiro você cria um objeto de cliente de serviço. A maneira recomendada é usar o compilador de cliente do serviço.

Cada um AWS service (Serviço da AWS) tem uma interface de serviço com métodos para cada ação na API de serviço. Por exemplo, a interface de serviço do DynamoDB se chama DBClient. AmazonDynamo Cada interface de serviço tem um compilador de cliente correspondente que você pode usar para construir uma implementação da interface de serviço. A classe do construtor de clientes DynamoDB é chamada de AmazonDynamoDB ClientBuilder.

Obter um compilador de cliente

Para obter uma instância do compilador de cliente, use o método de fábrica estático standard, conforme mostrado no exemplo a seguir.

AmazonDynamoDBClientBuilder builder = AmazonDynamoDBClientBuilder.standard();

Assim que tiver um compilador, será possível personalizar as propriedades do cliente usando muitos setters fluentes na API do compilador. Por exemplo, você pode definir uma região e um provedor de credenciais personalizados da maneira a seguir.

AmazonDynamoDB ddb = AmazonDynamoDBClientBuilder.standard() .withRegion(Regions.US_WEST_2) .withCredentials(new ProfileCredentialsProvider("myProfile")) .build();
nota

Os métodos withXXX fluentes retornam o objeto builder, de maneira que você possa vincular as chamadas ao método por comodidade e um código mais legível. Depois de configurar as propriedades desejadas, você poderá chamar o método build para criar o cliente. Assim que for criado, um cliente será imutável, e todas as chamadas para setRegion ou setEndpoint falharão.

Um compilador pode criar vários clientes com a mesma configuração. Quando você estiver escrevendo o aplicativo, lembre-se de que o compilador será mutável e não será thread-safe.

O código a seguir usa o compilador como uma fábrica para instâncias de cliente.

public class DynamoDBClientFactory { private final AmazonDynamoDBClientBuilder builder = AmazonDynamoDBClientBuilder.standard() .withRegion(Regions.US_WEST_2) .withCredentials(new ProfileCredentialsProvider("myProfile")); public AmazonDynamoDB createClient() { return builder.build(); } }

O construtor também expõe configuradores fluentes para ClientConfiguratione RequestMetricCollector, e uma lista personalizada de 2. RequestHandler

Este é um exemplo completo que substitui todas as propriedades configuráveis.

AmazonDynamoDB ddb = AmazonDynamoDBClientBuilder.standard() .withRegion(Regions.US_WEST_2) .withCredentials(new ProfileCredentialsProvider("myProfile")) .withClientConfiguration(new ClientConfiguration().withRequestTimeout(5000)) .withMetricsCollector(new MyCustomMetricsCollector()) .withRequestHandlers(new MyCustomRequestHandler(), new MyOtherCustomRequestHandler) .build();

Criar clientes async

AWS SDK for Java Tem clientes assíncronos (ou assíncronos) para cada serviço (exceto para Amazon S3) e um construtor de clientes assíncronos correspondente para cada serviço.

Para criar um cliente assíncrono do DynamoDB com o padrão ExecutorService

AmazonDynamoDBAsync ddbAsync = AmazonDynamoDBAsyncClientBuilder.standard() .withRegion(Regions.US_WEST_2) .withCredentials(new ProfileCredentialsProvider("myProfile")) .build();

Além das opções de configuração suportadas pelo construtor de clientes síncronos (ou sincronizados), o cliente assíncrono permite que você defina um personalizado ExecutorFactorypara alterar o ExecutorService que o cliente assíncrono usa. ExecutorFactoryé uma interface funcional, portanto, interopera com expressões lambda e referências de métodos do Java 8.

Para criar um cliente async com um executor personalizado

AmazonDynamoDBAsync ddbAsync = AmazonDynamoDBAsyncClientBuilder.standard() .withExecutorFactory(() -> Executors.newFixedThreadPool(10)) .build();

Usando DefaultClient

Os compiladores de cliente sync e async têm outro método de fábrica chamado defaultClient. Esse método cria um cliente de serviço com a configuração padrão usando a cadeia de fornecedores padrão para carregar credenciais e a Região da AWS. Se as credenciais ou a região não puderem ser determinadas pelo ambiente no qual o aplicativo estiver em execução, a chamada a defaultClient falhará. Consulte Trabalhando com AWS credenciais e Região da AWS seleção para obter mais informações sobre como as credenciais e a região são determinadas.

Para criar um cliente de serviço padrão

AmazonDynamoDB ddb = AmazonDynamoDBClientBuilder.defaultClient();

Ciclo de vida do cliente

Os clientes de serviço no SDK são thread-safe e, tendo em vista o melhor desempenho, você deve tratá-los como objetos de longa duração. Cada cliente tem o próprio recurso do grupo de conexões. Desligue explicitamente clientes quando eles não são mais necessários para evitar vazamentos de recursos.

Para desligar explicitamente um cliente, chame o método shutdown. Depois da chamada de shutdown, todos os recursos de cliente serão lançados, e o cliente será inutilizável.

Para desligar um cliente

AmazonDynamoDB ddb = AmazonDynamoDBClientBuilder.defaultClient(); ddb.shutdown(); // Client is now unusable