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.awssdk
groupId, 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
. v2
Dans 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>