Cosa c'è di diverso tra AWS SDK for Java 1.x e 2.x - AWS SDK for Java 2.x

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Cosa c'è di diverso tra AWS SDK for Java 1.x e 2.x

Questa sezione descrive le principali modifiche da tenere a mente quando si converte un'applicazione dall'utilizzo della AWS SDK for Java versione 1.x alla versione 2.x.

Modifica del nome del pacchetto

Una modifica notevole rispetto alla versione SDK per Java 1.x alla versione SDK per Java 2.x è la modifica del nome del pacchetto. I nomi dei pacchetti iniziano con software.amazon.awssdk SDK 2.x, mentre la SDK 1.x usa. com.amazonaws

Questi stessi nomi differenziano gli artefatti di Maven da 1.x a 2.x. SDK SDK Gli artefatti Maven per la versione 2.x utilizzano la, mentre la versione 1.x utilizza la. SDK software.amazon.awssdk groupId SDK com.amazonaws groupId

Ci sono alcune volte in cui il codice richiede una com.amazonaws dipendenza per un progetto che altrimenti utilizza solo artefatti 2.x. SDK Un esempio di ciò è quando si lavora con il lato server. AWS Lambda Questo è stato mostrato nella sezione Configurazione di un progetto Apache Maven precedente di questa guida.

Nota

Diversi nomi di pacchetto nella versione 1.x contengono. SDK v2 L'uso di v2 in questo caso di solito significa che il codice contenuto nel pacchetto è destinato a funzionare con la versione 2 del servizio.

Poiché il nome completo del pacchetto inizia concom.amazonaws, si tratta di componenti SDK 1.x. Esempi di questi nomi di pacchetto nella versione SDK 1.x sono:

  • com.amazonaws.services.dynamodbv2

  • com.amazonaws.retry.v2

  • com.amazonaws.services.apigatewayv2

  • com.amazonaws.services.simpleemailv2

Aggiungere la versione 2.x al progetto

Maven è il modo consigliato per gestire le dipendenze quando si utilizza la 2.x. AWS SDK for Java Per aggiungere componenti della versione 2.x al progetto, aggiorna il pom.xml file con una dipendenza da. 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>

Puoi anche utilizzare le versioni 1.x e 2.x durante la migrazione del side-by-side progetto alla versione 2.x.

Immutabile POJOs

Client, richieste di operazione e oggetti di risposta non sono più modificabili e non possono essere cambiati dopo la creazione. Per riutilizzare una variabile di richiesta o di risposta, è necessario creare un nuovo oggetto per assegnarla.

Esempio di aggiornamento di un oggetto richiesta in 1.x
DescribeAlarmsRequest request = new DescribeAlarmsRequest(); DescribeAlarmsResult response = cw.describeAlarms(request); request.setNextToken(response.getNextToken());
Esempio di aggiornamento di un oggetto richiesta in 2.x
DescribeAlarmsRequest request = DescribeAlarmsRequest.builder().build(); DescribeAlarmsResponse response = cw.describeAlarms(request); request = DescribeAlarmsRequest.builder() .nextToken(response.nextToken()) .build();

Metodi Setter e Getter

Nella versione AWS SDK for Java 2.x, i nomi dei metodi setter non includono il prefisso or. set with Ad esempio, *.withEndpoint() è adesso. *.endpoint()

I nomi dei metodi Getter non utilizzano il get prefisso.

Esempio dell'utilizzo dei metodi setter in 1.x
AmazonDynamoDB client = AmazonDynamoDBClientBuilder.standard() .withRegion("us-east-1") .build();
Esempio dell'utilizzo dei metodi setter in 2.x
DynamoDbClient client = DynamoDbClient.builder() .region(Region.US_EAST_1) .build();
Esempio di usare i metodi getter in 1.x
String token = request.getNextToken();
Esempio di usare i metodi getter in 2.x
String token = request.nextToken();

nomi delle classi del modello

I nomi delle classi del modello che rappresentano le risposte di servizio terminano con Response la v2 anziché con Result quella utilizzata dalla v1.

Esempio di nomi di classi che rappresentano una risposta in v1
CreateApiKeyResult AllocateAddressResult
Esempio di nomi di classi che rappresentano una risposta in v2
CreateApiKeyResponse AllocateAddressResponse

Stato della migrazione di librerie e utilità

SDKper librerie e utilità Java

La tabella seguente elenca lo stato di migrazione delle librerie e delle utilità per JavaSDK.

Nome della versione 1.12.x Nome della versione 2.x Dalla versione 2.x
D ynamoDBMapper DynamoDbEnhancedClient 2.12.0
Waiter Waiter 2.15.0
CloudFrontUrlSigner, CloudFrontCookieSigner CloudFrontUtilities 2,18,33
TransferManager S3 TransferManager 2.19.0
EC2Client per metadati EC2Client per metadati 2.19.29
parser S3 URI parser S3 URI 2.20.41
IAMGeneratore di politiche IAMGeneratore di politiche 2.20.126
Notifiche di eventi di Amazon S3 Notifiche di eventi S3 2.25.11
SQSBuffering lato client Amazon Raggruppamento automatico delle richieste API per Amazon SQS 2.28.0
Listener di avanzamento Listener di avanzamento non ancora rilasciato

librerie correlate

La tabella seguente elenca le librerie rilasciate separatamente ma che funzionano con Java 2.x. SDK

Nome utilizzato con la versione 2.x di for Java SDK Dalla versione
Client di crittografia Amazon S3 3.0.0 1
AWS Client di crittografia del database per DynamoDB 3.0.0 2

1 Il client di crittografia per Amazon S3 è disponibile utilizzando la seguente dipendenza Maven.

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

2 Il AWS Database Encryption Client per DynamoDB è disponibile utilizzando la seguente dipendenza Maven.

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

Dettagli sulla migrazione per librerie e utilità