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à.
AWS SDK per Java strumento di migrazione
AWS SDK per Java Fornisce uno strumento di migrazione che aiuta ad automatizzare la migrazione del codice SDK for Java 1.x (V1) a 2.x (V2). Lo strumento utilizza, uno strumento open source di OpenRewrite
Lo strumento supporta le regole di modifica del codice per i client del servizio SDK e la libreria di alto livello S3 Transfer Manager. Le regole di modifica del codice per altre API DynamoDB Enhanced Client di alto livello, DynamoDBMapperad APIs esempio dalla V1 alla V2, non sono supportate.
Per maggiori dettagli sulle limitazioni, consulta la fine di questa pagina. Per esempi dettagliati di modelli di codice comuni non supportati con passaggi di migrazione manuale, consulta Modelli di codice non supportati.
Utilizza lo strumento di migrazione
Migra un progetto Maven
-
Vai alla directory principale del tuo progetto Maven
Apri una finestra di terminale (riga di comando) e vai alla directory principale dell'applicazione basata su Maven.
-
Esegui il comando del plugin
rewrite-maven-pluginPuoi scegliere tra due modalità (obiettivi Maven):
dryRune.runModalità
dryRunIn questa
dryRunmodalità, il plugin genera i diff log nell'output della console e un file di patch denominatorewrite.patchnella cartella.target/rewriteQuesta modalità consente di visualizzare in anteprima le modifiche che verranno apportate, poiché non vengono apportate modifiche ai file del codice sorgente.L'esempio seguente mostra come richiamare il plugin in
dryRunmodalità.mvn org.openrewrite.maven:rewrite-maven-plugin:<rewrite-plugin-version>*:dryRun \ -Drewrite.recipeArtifactCoordinates=software.amazon.awssdk:v2-migration:<sdkversion>**\ -Drewrite.activeRecipes=software.amazon.awssdk.v2migration.AwsSdkJavaV1ToV2*Sostituisci
<rewrite-plugin-version>con ilrewriteMavenPluginVersionvalore che vedi in questo file di test. **Sostituisci
<sdkversion>con una versione SDK 2.x. Visita Maven Centralper verificare la versione più recente. Importante
Assicurati di utilizzare la versione
rewrite-maven-pluginmostrata nel file di testperché altre versioni potrebbero non funzionare. L'output della console proveniente dalla
dryRunmodalità dovrebbe essere simile al seguente.[WARNING] These recipes would make changes to project/src/test/resources/maven/before/pom.xml: [WARNING] software.amazon.awssdk.v2migration.AwsSdkJavaV1ToV2 [WARNING] software.amazon.awssdk.v2migration.UpgradeSdkDependencies [WARNING] org.openrewrite.java.dependencies.AddDependency: {groupId=software.amazon.awssdk, artifactId=apache-client, version=2.27.0, onlyIfUsing=com.amazonaws.ClientConfiguration} [WARNING] org.openrewrite.java.dependencies.AddDependency: {groupId=software.amazon.awssdk, artifactId=netty-nio-client, version=2.27.0, onlyIfUsing=com.amazonaws.ClientConfiguration} [WARNING] org.openrewrite.java.dependencies.ChangeDependency: {oldGroupId=com.amazonaws, oldArtifactId=aws-java-sdk-bom, newGroupId=software.amazon.awssdk, newArtifactId=bom, newVersion=2.27.0} [WARNING] org.openrewrite.java.dependencies.ChangeDependency: {oldGroupId=com.amazonaws, oldArtifactId=aws-java-sdk-s3, newGroupId=software.amazon.awssdk, newArtifactId=s3, newVersion=2.27.0} [WARNING] org.openrewrite.java.dependencies.ChangeDependency: {oldGroupId=com.amazonaws, oldArtifactId=aws-java-sdk-sqs, newGroupId=software.amazon.awssdk, newArtifactId=sqs, newVersion=2.27.0} [WARNING] These recipes would make changes to project/src/test/resources/maven/before/src/main/java/foo/bar/Application.java: [WARNING] software.amazon.awssdk.v2migration.AwsSdkJavaV1ToV2 [WARNING] software.amazon.awssdk.v2migration.S3GetObjectConstructorToFluent [WARNING] software.amazon.awssdk.v2migration.ConstructorToFluent [WARNING] software.amazon.awssdk.v2migration.S3StreamingResponseToV2 [WARNING] software.amazon.awssdk.v2migration.ChangeSdkType [WARNING] software.amazon.awssdk.v2migration.ChangeSdkCoreTypes [WARNING] software.amazon.awssdk.v2migration.ChangeExceptionTypes [WARNING] org.openrewrite.java.ChangeType: {oldFullyQualifiedTypeName=com.amazonaws.AmazonClientException, newFullyQualifiedTypeName=software.amazon.awssdk.core.exception.SdkException} [WARNING] org.openrewrite.java.ChangeMethodName: {methodPattern=com.amazonaws.AmazonServiceException getRequestId(), newMethodName=requestId} [WARNING] org.openrewrite.java.ChangeMethodName: {methodPattern=com.amazonaws.AmazonServiceException getErrorCode(), newMethodName=awsErrorDetails().errorCode} [WARNING] org.openrewrite.java.ChangeMethodName: {methodPattern=com.amazonaws.AmazonServiceException getServiceName(), newMethodName=awsErrorDetails().serviceName} [WARNING] org.openrewrite.java.ChangeMethodName: {methodPattern=com.amazonaws.AmazonServiceException getErrorMessage(), newMethodName=awsErrorDetails().errorMessage} [WARNING] org.openrewrite.java.ChangeMethodName: {methodPattern=com.amazonaws.AmazonServiceException getRawResponse(), newMethodName=awsErrorDetails().rawResponse().asByteArray} [WARNING] org.openrewrite.java.ChangeMethodName: {methodPattern=com.amazonaws.AmazonServiceException getRawResponseContent(), newMethodName=awsErrorDetails().rawResponse().asUtf8String} [WARNING] org.openrewrite.java.ChangeType: {oldFullyQualifiedTypeName=com.amazonaws.AmazonServiceException, newFullyQualifiedTypeName=software.amazon.awssdk.awscore.exception.AwsServiceException} [WARNING] software.amazon.awssdk.v2migration.NewClassToBuilderPattern [WARNING] software.amazon.awssdk.v2migration.NewClassToBuilder [WARNING] software.amazon.awssdk.v2migration.V1SetterToV2 [WARNING] software.amazon.awssdk.v2migration.V1GetterToV2 ... [WARNING] software.amazon.awssdk.v2migration.V1BuilderVariationsToV2Builder [WARNING] software.amazon.awssdk.v2migration.NewClassToBuilderPattern [WARNING] software.amazon.awssdk.v2migration.NewClassToBuilder [WARNING] software.amazon.awssdk.v2migration.V1SetterToV2 [WARNING] software.amazon.awssdk.v2migration.HttpSettingsToHttpClient [WARNING] software.amazon.awssdk.v2migration.WrapSdkClientBuilderRegionStr [WARNING] Patch file available: [WARNING] project/src/test/resources/maven/before/target/rewrite/rewrite.patch [WARNING] Estimate time saved: 20m [WARNING] Run 'mvn rewrite:run' to apply the recipes.Modalità
runQuando esegui il plugin in
runmodalità, modifica il codice sorgente sul disco per applicare le modifiche. Assicurati di avere un backup del codice sorgente prima di eseguire il comando.L'esempio seguente mostra come richiamare il plugin in
runmodalità.mvn org.openrewrite.maven:rewrite-maven-plugin:<rewrite-plugin-version>*:run \ -Drewrite.recipeArtifactCoordinates=software.amazon.awssdk:v2-migration:<sdkversion>**\ -Drewrite.activeRecipes=software.amazon.awssdk.v2migration.AwsSdkJavaV1ToV2<rewrite-plugin-version>*Sostituiscilo conrewriteMavenPluginVersionvaluequello che vedi in questo file di test. **Sostituisci
<sdkversion>con una versione SDK 2.x. Visita Maven Centralper verificare la versione più recente. Dopo aver eseguito il comando, compila l'applicazione ed esegui dei test per verificare le modifiche.
Migra un progetto Gradle
-
Vai alla directory principale del tuo progetto Gradle
Apri una finestra di terminale (riga di comando) e vai alla directory principale dell'applicazione basata su Gradle.
-
Crea uno script di init Gradle
Crea un
init.gradlefile con il seguente contenuto nella directory.initscript { repositories { maven { url "https://plugins.gradle.org/m2" } } dependencies { classpath("org.openrewrite:plugin:<rewrite-plugin-version>*") } } rootProject { plugins.apply(org.openrewrite.gradle.RewritePlugin) dependencies { rewrite("software.amazon.awssdk:v2-migration:latest.release") } afterEvaluate { if (repositories.isEmpty()) { repositories { mavenCentral() } } } }*Sostituiscilo
<rewrite-plugin-version>con la versione che vedi in questo file di test. -
Esegui il
rewritecomandoCome con il plug-in Maven, puoi eseguire il plug-in Gradle in
dryRunmodalità o.runModalità
dryRunL'esempio seguente mostra come richiamare il plugin in modalità.
dryRungradle rewriteDryRun --init-script init.gradle \ -Drewrite.activeRecipes=software.amazon.awssdk.v2migration.AwsSdkJavaV1ToV2Modalità
runL'esempio seguente mostra come richiamare il plugin in
runmodalità.gradle rewriteRun --init-script init.gradle \ -Drewrite.activeRecipes=software.amazon.awssdk.v2migration.AwsSdkJavaV1ToV2
Limitazioni attuali
Sebbene la migrazione supporti la maggior parte del codice V1 tramite regole di modifica del codice che si aggiornano all'equivalente V2, alcune classi e metodi non sono coperti. Per queste classi e metodi, segui le step-by-step istruzioni per migrare manualmente il codice.
Per alcune regole di modifica del codice non supportate, lo strumento di migrazione può aggiungere un commento che inizia con:
/*AWS SDK for Java v2 migration: Transform for ...
Dopo il commento, lo strumento restituisce uno stub generico della versione V2 del metodo o della classe. Ad esempio, nel seguente output, lo strumento di migrazione ha tentato di migrare il metodo del client V1 S3: setBucketLifecycleConfiguration
/*AWS SDK for Java v2 migration: Transform for setBucketLifecycleConfiguration method not supported. Please manually migrate your code by using builder pattern, update from BucketLifecycleConfiguration.Rule to LifecycleRule, StorageClass to TransitionStorageClass, and adjust imports and names.*/ s3.putBucketLifecycleConfiguration( PutBucketLifecycleConfigurationRequest.builder() .bucket(bucketName) .lifecycleConfiguration(BucketLifecycleConfiguration.builder() .build()) .build());
I collegamenti nell'elenco seguente rimandano alle informazioni sulla migrazione per aiutarti a migrare manualmente il codice.
-
Differenze del client S3 tra la versione 1 e la versione 2 di AWS SDK per Java
-
S3 Transfer Manager () TransferManager
-
Mappatura degli oggetti DynamoDB (Dynamo) DBMapper
-
EC2 utilità per i metadati EC2 MetadataUtils ()
-
Camerieri () AmazonDynamo DBWaiters
-
IAM Policy Builder (politica)
-
CloudFront preassegnazione (,) CloudFrontUrlSigner CloudFrontCookieSigner
-
Notifiche di eventi S3 (S3) EventNotification
-
Pubblicazione delle metriche SDK (documentazione 1.x, documentazione 2.x)
-
Modelli di codice non supportati: esempi dettagliati di modelli di codice comuni che richiedono la migrazione manuale