Criar clientes de serviço - AWS SDK for Java 1.x

O AWS SDK for Java 1.x entrou no modo de manutenção em 31 de julho de 2024 e chegará end-of-supportem 31 de dezembro de 2025. Recomendamos que você migre para o AWS SDK for Java 2.xpara 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á.

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 no serviçoAPI. Por exemplo, a interface de serviço do DynamoDB é chamada. AmazonDynamoDBClient 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 para DynamoDB é nomeada AmazonDynamoDBClientBuilder.

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();

Depois de ter um construtor, você pode personalizar as propriedades do cliente usando muitos configuradores fluentes no construtor. API 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 seguros e, para obter 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