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 para 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 para Java versión 1.x a la versión 2.x.
Cambio de nombre de paquete
Un cambio notable del SDK para Java 1.x al SDK para Java 2.x es el cambio de nombre del paquete. Los nombres de los paquetes comienzan por software.amazon.awssdk en el SDK 2.x, mientras que en el SDK 1.x se usa com.amazonaws.
Estos mismos nombres diferencian los artefactos de Maven del SDK 1.x del SDK 2.x. Los artefactos de Maven para el SDK 2.x usan el GroupID software.amazon.awssdk, mientras que el SDK 1.x usa el GroupID com.amazonaws.
Hay ocasiones en las que el código requiere una dependencia com.amazonaws para un proyecto que, de otro modo, solo utilizaría artefactos del SDK 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
Varios nombres de paquetes en el SDK 1.x contienen 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 por com.amazonaws, se trata de componentes del SDK 1.x. Algunos ejemplos de estos nombres de paquetes en el 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 2.x. AWS SDK para Java Para añadir componentes de la versión 2.x a su proyecto, actualice el archivo pom.xml con una dependencia en el SDK.
ejemplo
<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 al migrar tu proyecto a la versión 2.x side-by-side.
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 para 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 añaden el prefijo get.
ejemplo de utilizar métodos setter en 1.x
AmazonDynamoDB client = AmazonDynamoDBClientBuilder.standard() .withRegion("us-east-1") .build();
ejemplo de utilizar métodos setter en 2.x
DynamoDbClient client = DynamoDbClient.builder() .region(Region.US_EAST_1) .build();
ejemplo de utilizar métodos getter en 1.x
String token = request.getNextToken();
ejemplo de utilizar métodos getter en 2.x
String token = request.nextToken();
Nombres de clases de modelo
Los nombres de clases de modelo que representan respuestas de servicio terminan en Response en v2, en lugar de Result como en v1.
ejemplo de nombres de clases que representan una respuesta en v1
CreateApiKeyResult AllocateAddressResult
ejemplo de nombres de clases que representan una respuesta en v2
CreateApiKeyResponse AllocateAddressResponse
Estado migratorio de bibliotecas y utilidades
Bibliotecas y utilidades del SDK para Java
En la siguiente tabla, se muestra el estado de migración de bibliotecas y utilidades del 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 |
|---|---|---|
| Dinamo DBMapper | DynamoDbEnhancedClient | 2.12.0 |
| Esperadores | Esperadores | 2.15.0 |
| CloudFrontUrlSigner, CloudFrontCookieSigner | CloudFrontUtilities |
2.18.33 |
| TransferManager | S3TransferManager | 2.19.0 |
| Cliente de metadatos EC2 | Cliente de metadatos de EC2 | 2.19,29 |
| Analizador de URI S3 | Analizador de URI S3 |
2.20,41 |
| Creador de políticas de IAM | Creador de políticas de IAM | 2.20.126 |
| Notificaciones de eventos de S3 | Notificaciones de eventos de S3 | 2.25.11 |
| Almacenamiento en búfer del cliente Amazon SQS | API de procesamiento automático de solicitudes 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 tabla siguiente se enumeran las bibliotecas que se publican por separado pero que funcionan con el SDK para Java 2.x.
| Nombre utilizado en la versión 2.x del SDK para Java | Desde la versión |
|---|---|
| Cliente de cifrado de Amazon S3 | 3.0,0 1 |
| AWS SDK de cifrado de bases de datos para DynamoDB | 3.0.0 2 |
1Cliente de cifrado de Amazon S3
El cliente de cifrado de 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 SDK AWS de cifrado de bases de datos para DynamoDB
El SDK AWS de cifrado de bases de datos para DynamoDB está disponible para la versión 2 mediante la siguiente dependencia de Maven.
<dependency> <groupId>software.amazon.cryptography</groupId> <artifactId>aws-database-encryption-sdk-dynamodb</artifactId> <version>3.x</version> </dependency>
La información sobre la biblioteca de cifrado de DynamoDB que funciona con la versión 1 del SDK de Java está disponible en la Guía para desarrolladores AWS del SDK de cifrado de bases de datos (denominada Amazon DynamoDB Encryption Client for Java) y en. GitHub
Para obtener más información sobre la biblioteca de cifrado de DynamoDB que es compatible con la versión 2 del SDK de Java, consulte la Guía para desarrolladores del SDK de cifrado de bases de datos y AWS la fuente. GitHub
La información de migración sobre la biblioteca de cifrado está disponible en la Guía para desarrolladores del SDK de cifrado de bases de datos de AWS.