Creación de clientes de servicio - AWS SDK for Java 1.x

Anunciamos la próxima versión end-of-support para AWS SDK for Java (v1). Se recomienda que migre a AWS SDK for Java versión 2. Para ver las fechas, los detalles adicionales y la información sobre cómo realizar la migración, consulte el anuncio enlazado.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Creación de clientes de servicio

Para realizar solicitudes a Amazon Web Services, primero debe crear un objeto de cliente de servicio. La manera recomendada es utilizar el creador de clientes de servicio.

Cada uno Servicio de AWS tiene una interfaz de servicio con métodos para cada acción en la API de servicio. Por ejemplo, la interfaz de servicio de DynamoDB se denomina DBClient. AmazonDynamo Cada interfaz de servicio cuenta con su creador de clientes correspondiente, que puede utilizar para crear una implementación de la interfaz de servicio. La clase de creación de clientes para DynamoDB se denomina DB. AmazonDynamo ClientBuilder

Obtención de un creador de clientes

Para obtener una instancia del creador de clientes, use el método de fábrica estático standard, tal y como se muestra en el siguiente ejemplo.

AmazonDynamoDBClientBuilder builder = AmazonDynamoDBClientBuilder.standard();

Una vez que tenga un creador, puede personalizar las propiedades del cliente mediante el uso de funciones setter Fluent en la API del compilador. Por ejemplo, puede definir una región personalizada y un proveedor de credenciales personalizado, tal y como se indica a continuación.

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

Los métodos withXXX Fluent devuelven el objeto builder para que pueda encadenar fácilmente las llamadas a los métodos y para simplificar la lectura del código. Después de configurar las propiedades que desee, puede llamar al método build para crear el cliente. Una vez que se crea un cliente, este es inmutable y todas las llamadas a setRegion o setEndpoint producirán un error.

Un creador puede crear varios clientes con la misma configuración. Cuando escriba su aplicación, debe ser consciente de que el creador es mutable y no es seguro para subprocesos.

El código siguiente utiliza el creador como una fábrica de instancias 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(); } }

El generador también expone los setters fluidos para ClientConfigurationy RequestMetricCollector, además, una lista personalizada de RequestHandler 2.

A continuación se presenta un ejemplo completo que invalida todas las propiedades configurables.

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

Creación de clientes asíncronos

AWS SDK for Java Tiene clientes asíncronos (o asíncronos) para cada servicio (excepto) y el correspondiente generador de clientes asíncronos para Amazon S3 cada servicio.

Para crear un cliente de DynamoDB asíncrono con el valor predeterminado ExecutorService

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

Además de las opciones de configuración que admite el generador de clientes síncronos (o sincronizados), el cliente asíncrono permite configurar una configuración personalizada ExecutorFactorypara cambiar la que utiliza el cliente asíncrono. ExecutorService ExecutorFactoryes una interfaz funcional, por lo que interopera con las expresiones lambda y las referencias a métodos de Java 8.

Para crear un cliente asíncrono con un ejecutor personalizado

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

Usando DefaultClient

Los creador de clientes síncronos y asíncronos tienen otro método de fábrica denominado defaultClient. Este método crea un servicio de cliente con la configuración predeterminada, utilizando la cadena de proveedores predeterminada para cargar las credenciales y la región Región de AWS. Si las credenciales o la región no se pueden determinar a partir del entorno en el que se ejecuta la aplicación, la llamada a defaultClient produce un error. Consulte Trabajar con AWS las credenciales y la Región de AWS selección para obtener más información sobre cómo se determinan las credenciales y la región.

Para crear un cliente de servicio predeterminado

AmazonDynamoDB ddb = AmazonDynamoDBClientBuilder.defaultClient();

Ciclo de vida del cliente

Los clientes de servicio del SDK son seguros para subprocesos y, para obtener el mejor rendimiento, deben tratarse como objetos de larga duración. Cada cliente tiene su propio recurso de grupo de conexiones. Cierre los clientes de forma explícita cuando dejen de ser necesarios para evitar que se filtren recursos.

Para cerrar un cliente de forma explícita, llame al método shutdown. Después de llamar a shutdown, todos los recursos del cliente se liberan y ya no se puede utilizar el cliente.

Para cerrar un cliente

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