Qué diferencia hay entre la AWS SDK for Java 1.x y la 2.x - AWS SDK for Java 2.x

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.

Qué diferencia hay entre la AWS SDK for Java 1.x y la 2.x

En esta sección se describen los principales cambios que hay que tener en cuenta al convertir una aplicación de la AWS SDK for Java versión 1.x a la versión 2.x.

Cambio de nombre de paquete

Un cambio notable de la versión 1.x SDK de Java a la versión 2.x SDK de Java es el cambio de nombre del paquete. Los nombres de los paquetes comienzan con SDK 2.x, mientras que software.amazon.awssdk en SDK 1.x se usa. com.amazonaws

Estos mismos nombres diferencian los artefactos de Maven de SDK 1.x a 2.x. SDK Los artefactos de Maven para la versión SDK 2.x usan la software.amazon.awssdkgroupId, mientras que la 1.x usa la. SDK com.amazonaws groupId

Hay algunas ocasiones en las que el código requiere una com.amazonaws dependencia para un proyecto que, de otro modo, solo SDK utilizaría artefactos 2.x. Un ejemplo de ello es cuando trabajas con AWS Lambda del lado del servidor. Esto se mostró anteriormente en la sección Configurar un proyecto de Apache Maven en esta guía.

nota

La versión SDK 1.x contiene varios nombres de paquetes. v2 El uso de v2 en este caso suele significar que el código del paquete está orientado a funcionar con la versión 2 del servicio.

Como el nombre completo del paquete comienza porcom.amazonaws, se trata de componentes de la versión SDK 1.x. Algunos ejemplos de estos nombres de paquetes en la versión SDK 1.x son:

  • com.amazonaws.services.dynamodbv2

  • com.amazonaws.retry.v2

  • com.amazonaws.services.apigatewayv2

  • com.amazonaws.services.simpleemailv2

Adición de la versión 2.x a su proyecto

Maven es la forma recomendada de gestionar las dependencias cuando se utiliza la versión 2.x. AWS SDK for Java Para añadir componentes de la versión 2.x a su proyecto, actualice su pom.xml archivo con una dependencia de. SDK

<dependencyManagement> <dependencies> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>bom</artifactId> <version>2.27.21</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>dynamodb</artifactId> </dependency> </dependencies>

También puedes usar las versiones 1.x y 2.x side-by-side al migrar tu proyecto a la versión 2.x.

Inmutable POJOs

Los objetos de respuesta y solicitud de operación y clientes son ahora inmutables y no se pueden cambiar tras la creación. Para reutilizar una variable de respuesta o solicitud, debe crear un objeto nuevo para asignarlo a la misma.

ejemplo de actualización de un objeto de solicitud en 1.x
DescribeAlarmsRequest request = new DescribeAlarmsRequest(); DescribeAlarmsResult response = cw.describeAlarms(request); request.setNextToken(response.getNextToken());
ejemplo de actualización de un objeto de solicitud en 2.x
DescribeAlarmsRequest request = DescribeAlarmsRequest.builder().build(); DescribeAlarmsResponse response = cw.describeAlarms(request); request = DescribeAlarmsRequest.builder() .nextToken(response.nextToken()) .build();

Métodos Setter y Getter

En la versión AWS SDK for Java 2.x, los nombres de los métodos setter no incluyen el prefijo or. set with Por ejemplo, *.withEndpoint() es ahora *.endpoint().

Los nombres de los métodos Getter no utilizan el prefijo. get

ejemplo de usar métodos setter en 1.x
AmazonDynamoDB client = AmazonDynamoDBClientBuilder.standard() .withRegion("us-east-1") .build();
ejemplo de usar métodos setter en 2.x
DynamoDbClient client = DynamoDbClient.builder() .region(Region.US_EAST_1) .build();
ejemplo de usar métodos getter en 1.x
String token = request.getNextToken();
ejemplo de usar métodos de captación en la versión 2.x
String token = request.nextToken();

Nombres de clases de modelos

Los nombres de las clases de modelo que representan las respuestas de los servicios terminan Response en la versión 2 y no en los Result que utiliza la versión 1.

ejemplo de nombres de clases que representan una respuesta en la v1
CreateApiKeyResult AllocateAddressResult
ejemplo de nombres de clases que representan una respuesta en la versión 2
CreateApiKeyResponse AllocateAddressResponse

Estado migratorio de bibliotecas y utilidades

SDKpara bibliotecas y utilidades de Java

En la siguiente tabla se muestra el estado de migración de las bibliotecas y utilidades SDK para Java.

Nombre de la versión 1.12.x Nombre de la versión 2.x A partir de la versión 2.x
D ynamoDBMapper DynamoDbEnhancedClient 2.12.0
Esperadores Esperadores 2.15.0
CloudFrontUrlSigner, CloudFrontCookieSigner CloudFrontUtilities 2.18.33
TransferManager S3 TransferManager 2.19.0
EC2Cliente de metadatos EC2Cliente de metadatos 2.19.29
Analizador S3 URI analizador S3 URI 2.20.41
IAMCreador de políticas IAMCreador de políticas 2.20.126
Notificaciones de eventos de S3 Notificaciones de eventos de S3 2.25.11
Almacenamiento en búfer SQS del lado del cliente de Amazon Procesamiento automático de solicitudes API por lotes para Amazon SQS 2.28.0
Agentes de escucha de progreso Agentes de escucha de progreso no publicado aún

Bibliotecas relacionadas

En la siguiente tabla se enumeran las bibliotecas que se publican por separado pero que funcionan con la versión SDK 2.x de Java.

Nombre utilizado en la versión 2.x de para Java SDK Desde la versión
Cliente de cifrado de Amazon S3 3.0.0 1
AWS Cliente de cifrado de bases de datos para DynamoDB 3.0.0 2

1El cliente de cifrado para Amazon S3 está disponible mediante la siguiente dependencia de Maven.

<dependency> <groupId>software.amazon.encryption.s3</groupId> <artifactId>amazon-s3-encryption-client-java</artifactId> <version>3.x</version> </dependency>

2 El cliente AWS de cifrado de bases de datos para DynamoDB está disponible mediante la siguiente dependencia de Maven.

<dependency> <groupId>software.amazon.cryptography</groupId> <artifactId>aws-database-encryption-sdk-dynamodb</artifactId> <version>3.x</version> </dependency>

Detalles de migración para bibliotecas y utilidades