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>