Quelle est la différence entre la version AWS SDK for Java 1.x et la version 2.x - AWS SDK for Java 2.x

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Quelle est la différence entre la version AWS SDK for Java 1.x et la version 2.x

Cette section décrit les principaux changements à prendre en compte lors de la conversion d'une application de la AWS SDK for Java version 1.x à la version 2.x.

Modification du nom du package

Un changement notable entre Java 1.x et Java 2.x est le SDK changement de nom du package. SDK Les noms des packages commencent software.amazon.awssdk par SDK 2.x, alors que le SDK 1.x utilise. com.amazonaws

Ces mêmes noms différencient les artefacts Maven de SDK 1.x à SDK 2.x. Les artefacts Maven de la version SDK 2.x utilisent le software.amazon.awssdkgroupId, tandis que le SDK 1.x utilise le. com.amazonaws groupId

Il arrive parfois que votre code nécessite une com.amazonaws dépendance pour un projet qui n'utilise autrement que des artefacts SDK 2.x. C'est par exemple le cas lorsque vous travaillez avec le côté serveur AWS Lambda. Cela a été expliqué dans la section Configurer un projet Apache Maven plus haut dans ce guide.

Note

Plusieurs noms de packages dans la version SDK 1.x contiennentv2. v2Dans ce cas, l'utilisation de signifie généralement que le code du package est conçu pour fonctionner avec la version 2 du service.

Comme le nom complet du package commence parcom.amazonaws, il s'agit de composants SDK 1.x. Voici des exemples de ces noms de paquets dans la SDK version 1.x :

  • com.amazonaws.services.dynamodbv2

  • com.amazonaws.retry.v2

  • com.amazonaws.services.apigatewayv2

  • com.amazonaws.services.simpleemailv2

Ajouter la version 2.x à votre projet

Maven est la méthode recommandée pour gérer les dépendances lors de l'utilisation de la version AWS SDK for Java 2.x. Pour ajouter des composants de la version 2.x à votre projet, mettez à jour votre pom.xml fichier avec une dépendance auSDK.

<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>

Vous pouvez également utiliser les versions 1.x et 2.x lorsque side-by-side vous migrez votre projet vers la version 2.x.

Immuable POJOs

Les clients et les objets de demande et de réponse d'opération sont désormais immuables et ne peuvent pas être modifiés après création. Pour réutiliser une variable de demande ou de réponse, vous devez créer un objet pour l'attribuer.

Exemple de mise à jour d'un objet de demande dans la version 1.x
DescribeAlarmsRequest request = new DescribeAlarmsRequest(); DescribeAlarmsResult response = cw.describeAlarms(request); request.setNextToken(response.getNextToken());
Exemple de mise à jour d'un objet de demande dans la version 2.x
DescribeAlarmsRequest request = DescribeAlarmsRequest.builder().build(); DescribeAlarmsResponse response = cw.describeAlarms(request); request = DescribeAlarmsRequest.builder() .nextToken(response.nextToken()) .build();

Méthodes Setter et Getter

Dans la version AWS SDK for Java 2.x, les noms des méthodes setter n'incluent pas le préfixe set orwith. Par exemple, *.withEndpoint() c'est maintenant*.endpoint().

Les noms des méthodes Getter n'utilisent pas le get préfixe.

Exemple de l'utilisation des méthodes setter dans la version 1.x
AmazonDynamoDB client = AmazonDynamoDBClientBuilder.standard() .withRegion("us-east-1") .build();
Exemple de l'utilisation des méthodes setter dans la version 2.x
DynamoDbClient client = DynamoDbClient.builder() .region(Region.US_EAST_1) .build();
Exemple de l'utilisation des méthodes getter dans la version 1.x
String token = request.getNextToken();
Exemple de l'utilisation des méthodes getter dans la version 2.x
String token = request.nextToken();

Noms des classes de modèles

Les noms des classes de modèles qui représentent les réponses des services se terminent par Response la version 2 au lieu de Result celle utilisée par la version 1.

Exemple de noms de classes qui représentent une réponse dans la version 1
CreateApiKeyResult AllocateAddressResult
Exemple de noms de classes qui représentent une réponse dans la version 2
CreateApiKeyResponse AllocateAddressResponse

État de migration des bibliothèques et des utilitaires

SDKpour les bibliothèques et utilitaires Java

Le tableau suivant répertorie l'état de migration des bibliothèques et des utilitaires SDK pour Java.

Nom de la version 1.12.x Nom de la version 2.x Depuis la version 2.x
D ynamoDBMapper DynamoDbEnhancedClient 2.12.0
Programmes d'attente Programmes d'attente 2.15.0
CloudFrontUrlSigner, CloudFrontCookieSigner CloudFrontUtilities 2,18,33
TransferManager S3 TransferManager 2.19.0
EC2Client de métadonnées EC2Client de métadonnées 2,19,29
URIAnalyseur S3 URIAnalyseur S3 2,20,41
IAMGénérateur de politiques IAMGénérateur de politiques 2,20,126
Notifications d'événements S3 Notifications d'événements S3 2,25,11
Mise en mémoire SQS tampon côté client Amazon Traitement automatique des demandes par lots API pour Amazon SQS 2.28.0
Écouteurs de progression Écouteurs de progression pas encore publié

Bibliothèques associées

Le tableau suivant répertorie les bibliothèques publiées séparément mais qui fonctionnent avec la version 2.x SDK pour Java.

Nom utilisé avec la version 2.x du SDK pour Java Depuis la version
Client de chiffrement Amazon S3 3,0.0 1
AWS Client de chiffrement de base de données pour DynamoDB 3,0.0 2

1 Le client de chiffrement pour Amazon S3 est disponible en utilisant la dépendance Maven suivante.

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

2 Le client AWS de chiffrement de base de données pour DynamoDB est disponible en utilisant la dépendance Maven suivante.

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

Détails de migration pour les bibliothèques et les utilitaires