O AWS SDK para Java 1.x entrou no modo de manutenção em 31 de julho de 2024 e o fim do suporte
Criar clientes de serviço
Para fazer requisições ao Amazon Web Services, você primeiro cria um objeto do cliente de serviço. A maneira recomendada é usar o compilador de cliente do serviço.
Cada serviço da 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 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 compilador de cliente do DynamoDB se chama 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();
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 compilador também expõe setters fluentes para ClientConfiguration e RequestMetricCollector, e uma lista personalizada de RequestHandler2.
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
O AWS SDK para Java tem clientes assíncronos (ou async) para cada serviço (exceto para o Amazon S3) e um compilador de cliente async correspondente para cada serviço.
Para criar um cliente do DynamoDB async com o ExecutorService padrão
AmazonDynamoDBAsync ddbAsync = AmazonDynamoDBAsyncClientBuilder.standard() .withRegion(Regions.US_WEST_2) .withCredentials(new ProfileCredentialsProvider("myProfile")) .build();
Além das opções de configuração compatíveis com o compilador de cliente síncrono (ou sync), o cliente async permite definir um ExecutorFactory personalizado para alterar o ExecutorService usado pelo cliente async. O ExecutorFactory é uma interface funcional. Dessa forma, ele interopera com expressões lambda do Java 8 e referências do método.
Para criar um cliente async com um executor personalizado
AmazonDynamoDBAsync ddbAsync = AmazonDynamoDBAsyncClientBuilder.standard() .withExecutorFactory(() -> Executors.newFixedThreadPool(10)) .build();
Usar 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 Trabalhar com credenciais da AWS e Seleção da Região da AWS 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