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.awssdk
groupId, 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
-
SDKpublicación de métricas (documentación 1.x, documentación 2.x)