Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
AWS SDK para Java herramienta de migración
AWS SDK para Java Proporciona una herramienta de migración que ayuda a automatizar la migración del código SDK for Java 1.x (V1) a 2.x (V2). La herramienta utiliza OpenRewrite
La herramienta admite las reglas de modificación de código para los clientes del servicio del SDK y la biblioteca de alto nivel de S3 Transfer Manager. No se admiten las reglas de modificación de código para otras aplicaciones de DynamoDBMapperalto nivel, APIs como la API de cliente mejorada de DynamoDB de la V1 a la V2.
Para obtener más información sobre las limitaciones, consulte el final de esta página. Para ver ejemplos detallados de patrones de código no compatibles comunes con pasos de migración manual, consulte Patrones de código no compatibles.
Utilice la herramienta de migración
Migre un proyecto de Maven
Sigue las instrucciones que aparecen a continuación para migrar tu proyecto basado en Maven del SDK for Java 1.x mediante la herramienta de complementos de OpenRewriteMaven
-
Navega hasta el directorio raíz de tu proyecto de Maven
Abre una ventana de terminal (línea de comandos) y navega hasta el directorio raíz de tu aplicación basada en Maven.
-
Ejecuta el comando del plugin
rewrite-maven-pluginPuedes elegir entre dos modos (objetivos de Maven):
dryRunyrun.Modo
dryRunEn este
dryRunmodo, el complemento genera registros de diferencias en la salida de la consola y un archivo de parche con un nombrerewrite.patchen latarget/rewritecarpeta. Este modo te permite previsualizar los cambios que se van a realizar, ya que no se realizan cambios en los archivos de código fuente.El siguiente ejemplo muestra cómo invocar el complemento en el
dryRunmodo.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<rewrite-plugin-version>*Sustitúyalo por elrewriteMavenPluginVersionvalor que aparece en este archivo de prueba. <sdkversion>**Sustitúyalo por una versión 2.x del SDK. Visite Maven Centralpara comprobar si existe la versión más reciente. importante
Asegúrese de usar la versión que
rewrite-maven-pluginse muestra en el archivo de prueba, ya que es posible que otras versiones no funcionen. La salida de la consola del
dryRunmodo debe parecerse a la siguiente.[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.Modo
runCuando ejecutas el complemento en
runmodo, modifica el código fuente del disco para aplicar los cambios. Asegúrese de tener una copia de seguridad del código fuente antes de ejecutar el comando.El siguiente ejemplo muestra cómo invocar el complemento en
runmodo.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>*Sustitúyalo por elrewriteMavenPluginVersionvalueque ves en este archivo de prueba. <sdkversion>**Sustitúyalo por una versión 2.x del SDK. Visite Maven Centralpara comprobar si existe la versión más reciente. Después de ejecutar el comando, compile la aplicación y ejecute las pruebas para comprobar los cambios.
Migre un proyecto de Gradle
Sigue las instrucciones que aparecen a continuación para migrar tu proyecto basado en Gradle del SDK for Java 1.x mediante la herramienta de complementos de OpenRewriteGradle
-
Navega hasta el directorio raíz de tu proyecto de Gradle
Abre una ventana de terminal (línea de comandos) y navega hasta el directorio raíz de tu aplicación basada en Gradle.
-
Crea un script de inicio de Gradle
Crea un
init.gradlearchivo con el siguiente contenido en el directorio.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() } } } }<rewrite-plugin-version>*Sustitúyalo por la versión que aparece en este archivo de prueba. -
Ejecute el comando
rewriteAl igual que con el complemento Maven, puedes ejecutar el complemento de Gradle en el modo
dryRunorun.Modo
dryRunEn el siguiente ejemplo, se muestra cómo invocar el complemento en el modo.
dryRungradle rewriteDryRun --init-script init.gradle \ -Drewrite.activeRecipes=software.amazon.awssdk.v2migration.AwsSdkJavaV1ToV2Modo
runEl siguiente ejemplo muestra cómo invocar el complemento en
runmodo.gradle rewriteRun --init-script init.gradle \ -Drewrite.activeRecipes=software.amazon.awssdk.v2migration.AwsSdkJavaV1ToV2
Limitaciones actuales
Si bien la migración admite la mayoría del código de la V1 mediante reglas de modificación de código que se actualizan al equivalente de la V2, algunas clases y métodos no están cubiertos. Para estas clases y métodos, sigue las step-by-step instrucciones para migrar el código manualmente.
En el caso de algunas reglas de modificación de código no compatibles, la herramienta de migración puede añadir un comentario que comience por:
/*AWS SDK for Java v2 migration: Transform for ...
Tras el comentario, la herramienta genera un código auxiliar genérico de la versión V2 del método o la clase. Por ejemplo, en el siguiente resultado, la herramienta de migración intentó migrar el setBucketLifecycleConfiguration método del cliente V1 S3:
/*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());
Los enlaces de la lista siguiente le llevan a la información sobre migración para ayudarle a migrar el código manualmente.
-
Diferencias del cliente S3 entre la versión 1 y la versión 2 del AWS SDK para Java
-
S3 Transfer Manager (TransferManager)
-
Mapeo de objetos de DynamoDB (Dynamo) DBMapper
-
EC2 utilidad de metadatos () EC2 MetadataUtils
-
Camareros () AmazonDynamo DBWaiters
-
CloudFront prefirmando (,) CloudFrontUrlSigner CloudFrontCookieSigner
-
Notificaciones de eventos de S3 (S3EventNotification)
-
Publicación de métricas del SDK (documentación 1.x, documentación 2.x)
-
Patrones de código no compatibles: ejemplos detallados de patrones de código comunes que requieren una migración manual