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.
Encuentre aplicaciones mediante clientes AWS SDK para Java 1.x
Antes de migrar a AWS SDK for Java 2.x, debe identificar qué aplicaciones de su entorno utilizan los clientes del SDK for Java 1.x. Puede usar CloudTrail los registros para rastrear el uso del SDK, buscar en los registros de las aplicaciones advertencias de obsolescencia, inspeccionar el código fuente y las configuraciones de compilación, o examinar los artefactos de Java que se pueden implementar. Utilice los métodos que estén disponibles en su entorno.
Utilice CloudWatch Logs Insights para buscar aplicaciones con clientes 1.x
Amazon CloudWatch Logs Insights le permite consultar CloudTrail los eventos enviados a un grupo de CloudWatch registros de Logs. Utilice este método para identificar las versiones del SDK a partir del campo UserAgent de los CloudTrail registros. Necesitas un CloudTrail registro con los CloudWatch registros habilitados. Si no tiene uno, consulte Crear un registro con la CloudTrail consola y Enviar eventos a los CloudWatch registros.
En la CloudWatch consola, dirígete a Logs Insights, en Logs, en Logs. Seleccione su grupo de CloudTrail registros y establezca el intervalo de tiempo para cubrir el período que desea analizar. Para obtener más información sobre el uso de Logs Insights, consulte Análisis de los datos de registro con CloudWatch Logs Insights.
En las siguientes consultas de ejemplo, se encuentran todas las solicitudes de aplicaciones de usuario y herramientas de terceros realizadas con SDK for Java 1.x. Logs Insights es compatible con Logs Insights QL y SQL. La consulta QL utiliza el grupo de registros seleccionado en la consola. La consulta SQL requiere que especifique el nombre del grupo de registros en la FROM cláusula.
Consulta QL de Logs Insights:
fields userIdentity.type, userIdentity.arn, eventSource, awsRegion, eventName, eventType, eventTime, userAgent, sourceIPAddress | filter userAgent like /aws-sdk-java\/1\./ | filter userAgent not like /aws-internal\// | sort eventTime desc
Consulta SQL:
SELECT `userIdentity.type`, `userIdentity.arn`, eventSource, awsRegion, eventName, eventType, eventTime, userAgent, sourceIPAddress FROM `sample-cloudtrail-log-group` WHERE userAgent LIKE '%aws-sdk-java/1.%' AND userAgent NOT LIKE '%aws-internal/%' ORDER BY eventTime DESC
sample-cloudtrail-log-groupReemplácelo por el nombre de su grupo de CloudTrail registros.
Para exportar los resultados, selecciona Exportar resultados. El siguiente ejemplo muestra un único evento en formato JSON:
{ "userIdentity.type": "AssumedRole", "userIdentity.arn": "arn:aws:sts::123456789012:assumed-role/Admin/Alice", "eventSource": "dynamodb.amazonaws.com", "awsRegion": "us-east-1", "eventName": "ListTables", "eventType": "AwsApiCall", "eventTime": "2025-07-01T22:02:23Z", "userAgent": "aws-sdk-java/1.12.746 Linux/5.10.240 OpenJDK/11.0.25+9-LTS ...", "sourceIPAddress": "12.345.6.78" }
En este ejemplo, se realizó 2025-07-01T22:02:23 (UTC) una solicitud de ListTables DynamoDB desde una 12.345.6.78 dirección IP con las credenciales del rol asumido. Admin/Alice El campo UserAgent muestra que la solicitud se realizó mediante la versión SDK for Java 1.12.746 en un sistema Linux con JDK 11.
Para obtener una descripción de los campos del registro de AWS CloudTrail eventos, consulte el contenido del CloudTrail registro.
Si no CloudTrail está habilitado en su cuenta, póngase en contacto con el administrador de AWS cuentas de su organización para habilitarlo o utilice uno de los métodos alternativos que se describen en las siguientes secciones.
CloudWatch Logs Insights cobra por consulta en función de la cantidad de datos escaneados. Si has creado un registro específico para esta investigación, considera detenerlo o eliminarlo para evitar que se sigan cobrando cargos. Para ver los precios actuales, consulta Amazon CloudWatch Pricing
Busque en los registros de nivel de advertencia de las aplicaciones la obsolescencia del SDK
A partir de la versión 1.12.767 (publicada el 30 de julio de 2024), la versión AWS SDK para Java 1.x emite una advertencia de obsolescencia al iniciar la aplicación. Puede buscar esta advertencia en los registros de las aplicaciones para identificar qué aplicaciones y hosts utilizan SDK for Java 1.x.
La redacción exacta de la advertencia depende de la versión del SDK:
-
Versiones de la 1.12.767 a la 1.12.796:
WARNING: The AWS SDK for Java 1.x entered maintenance mode starting July 31, 2024 and will reach end of support on December 31, 2025... -
Versiones 1.12.797 y superiores:
WARNING: The AWS SDK for Java 1.x reached end of support on December 31, 2025...
El final ... indica que el mensaje de advertencia continúa con texto adicional. Puede buscar el prefijo común The AWS SDK for Java 1.x para encontrar cualquier versión de la advertencia.
En el siguiente ejemplo, se muestra la búsqueda de esta advertencia mediantegrep:
grep -r "The AWS SDK for Java 1.x" /path/to/your/application/logs/
Si se encuentra la advertencia, el grep comando imprime las líneas de registro coincidentes. Si no se encuentra ninguna advertencia, la aplicación no utiliza el SDK for Java 1.x o utiliza una versión anterior a la 1.12.767. En ese caso, utilice uno de los otros métodos descritos en este documento.
Busque el código fuente y las dependencias
Puede buscar referencias a la versión 1.x en su base de código y en los archivos de configuración de compilación. AWS SDK para Java El identificador clave es el ID de com.amazonaws grupo, que utilizan todos los artefactos del SDK for Java 1.x.
En los siguientes ejemplos se muestra cómo grep se utiliza para buscar com.amazonaws referencias en archivos de proyectos Java comunes.
Ejemplo: busque en los archivos fuente de Java las importaciones del SDK para Java 1.x (ejecutadas desde el directorio raíz del proyecto)
grep -r "import com.amazonaws" --include="*.java" .
Ejemplo de código de salida:
src/main/java/com/example/App.java:import com.amazonaws.services.s3.AmazonS3;
nota
El com.amazonaws paquete también lo utilizan las bibliotecas que no forman parte del SDK para Java 1.x, comoaws-lambda-java-core. Para confirmar que la importación proviene de SDK for Java 1.x, comprueba que el ID de artefacto correspondiente en tu configuración de administración de dependencias o de tu pom.xml configuración de administración de dependencias comience por. build.gradle aws-java-sdk-
Ejemplo: busque en pom.xml archivos Maven las dependencias del SDK for Java 1.x (ejecutadas desde el directorio raíz del proyecto)
grep -r "com.amazonaws" --include="pom.xml" .
Ejemplo de código de salida:
pom.xml: <groupId>com.amazonaws</groupId>
Ejemplo: busca en archivos de compilación de Gradle las dependencias del SDK for Java 1.x (ejecutadas desde el directorio raíz del proyecto)
grep -r "com.amazonaws:aws-java-sdk" --include="*.gradle" .
Ejemplo de código de salida:
build.gradle: implementation 'com.amazonaws:aws-java-sdk-s3:1.12.xxx'
Los grep comandos anteriores identifican las referencias de SDK for Java 1.x declaradas directamente en los archivos fuente y de compilación. Sin embargo, es posible que tu aplicación también dependa del SDK for Java 1.x de forma transitiva, a través de una biblioteca de terceros que a su vez depende del SDK. Usa el árbol de dependencias de la herramienta de compilación para encontrar las dependencias directas y transitivas del SDK for Java 1.x. Elige el ejemplo que coincida con tu sistema de compilación.
Ejemplo: Usa Maven para buscar todas las dependencias transitivas del SDK for Java 1.x (ejecutadas desde el directorio raíz del proyecto)
mvn dependency:tree -Dincludes=com.amazonaws
Ejemplo de código de salida:
[INFO] com.example:my-application:jar:1.0-SNAPSHOT [INFO] +- com.amazonaws:aws-java-sdk-s3:jar:1.12.746:compile [INFO] | \- com.amazonaws:aws-java-sdk-core:jar:1.12.746:compile [INFO] \- some.thirdparty:library:jar:2.3.1:compile [INFO] \- com.amazonaws:aws-java-sdk-dynamodb:jar:1.12.600:compile
La -Dincludes=com.amazonaws marca filtra el árbol para mostrar solo los artefactos del SDK for Java 1.x. En este ejemplo, aws-java-sdk-s3 es una dependencia directa, pero aws-java-sdk-dynamodb es una dependencia transitiva introducida por. some.thirdparty:library
Ejemplo: usa Gradle para buscar todas las dependencias transitivas del SDK for Java 1.x (se ejecutan desde el directorio raíz del proyecto)
gradle dependencies --configuration runtimeClasspath | grep "com.amazonaws"
Ejemplo de código de salida:
+--- com.amazonaws:aws-java-sdk-s3:1.12.746 | \--- com.amazonaws:aws-java-sdk-core:1.12.746 \--- com.amazonaws:aws-java-sdk-dynamodb:1.12.600
Gradle no tiene un filtro de dependencias integrado equivalente al de Maven-Dincludes, por lo que canalizarlo es el enfoque más sencillo. grep
Inspecciona los artefactos de Java desplegables
Puede inspeccionar los artefactos de Java desplegables (JARs WARs, o EARs) para confirmar si la versión AWS SDK para Java 1.x viene empaquetada con la aplicación. Los archivos de almacenamiento de Java son archivos en formato ZIP. Para determinar si SDK for Java 1.x está presente, busque el archivo com/amazonaws/sdk/versionInfo.properties dentro del archivo. Este archivo está incluido en el aws-java-sdk-core módulo y contiene el número de versión del SDK.
Comprobación rápida con el jar comando
En el caso de los uber-jar, en los que todas las clases de dependencias se combinan en el nivel superior, muestre el contenido del archivo y busque el archivo de versión:
En los ejemplos siguientes, myapp.jar sustitúyalo por la ruta al archivo JAR de la aplicación.
jar -tf myapp.jar | grep 'versionInfo.properties'
Si el SDK está presente, el resultado es:
com/amazonaws/sdk/versionInfo.properties
Si el jar comando no está disponible en su entorno (por ejemplo, imágenes de contenedor mínimas o solo en JRE), puede usar unzip -l en su lugar:
unzip -l myapp.jar | grep 'versionInfo.properties'
Para imprimir la versión:
unzip -p myapp.jar com/amazonaws/sdk/versionInfo.properties
Ejemplo de código de salida:
platform=java version=1.12.xxx
nota
Los comandos anteriores solo buscan entradas de nivel superior en uber-jars. No encontrarán las clases de SDK compactas JARs (donde las dependencias son externas) ni dentro de las anidadas JARs (como las que se encuentran en WARs los paquetes Lambda o en o). EARs lib/ WEB-INF/lib/ En el caso de Thin JARs, comprueba la configuración de compilación (pom.xml,build.gradle) o el árbol de dependencias. En el caso de anidado JARs, busca el paquete JARs con una herramienta que pueda leer archivos ZIP de forma recursiva sin necesidad de extraerlos en el disco.
Use CloudTrail Lake para buscar aplicaciones con clientes 1.x
importante
AWS CloudTrail Lake dejará de estar abierto a nuevos clientes a partir del 31 de mayo de 2026. Los clientes existentes pueden seguir utilizando el servicio. Para obtener más información, consulta el tema sobre el cambio de disponibilidad de CloudTrail Lake. Para obtener un enfoque alternativo, consulteUtilice CloudWatch Logs Insights para buscar aplicaciones con clientes 1.x.
AWS CloudTrail Lake permite consultar los eventos registrados por CloudTrail. Siga estos pasos para crear un lago de datos que identifique las versiones del SDK que utilizan sus aplicaciones:
-
Cree un lago CloudTrail de datos. Consulte la Guía del usuario para crear un almacén de datos de eventos.
-
Después de crear el almacén de datos, examine el contenido del registro. El cuerpo del registro contiene campos que determinan la acción, el momento y la ubicación solicitados. Para obtener más información, consulte la guía del usuario para ver el contenido de los CloudTrail registros.
-
Ejecute consultas con sus datos. Siga la Guía del usuario para consultar y guardar los resultados de las consultas.
El campo userAgent de cada registro contiene la versión del SDK que realizó la solicitud. Utilice este campo para identificar las aplicaciones que utilizan SDK for Java 1.x.
La siguiente consulta de ejemplo busca todas las solicitudes de un EventDatastore ID sample-Data-Store-Id procedentes de aplicaciones de usuario y herramientas de terceros realizadas con el SDK para Java 1.x a partir del 17 de junio de 2025:
select userIdentity, eventSource, awsRegion, eventName, eventType, eventTime, userAgent, requestParameters, sourceIPAddress from sample-Data-Store-Id where eventTime > '2025-06-17 00:00:00' and userAgent like '%aws-sdk-java/1.%' and userAgent not like '%aws-internal/%' order by eventTime desc
Un ejemplo del contenido del evento en el resultado de la consulta es el siguiente:
{ "userIdentity": "{ "type": "IAMUser", "principalId": "AIDAJ45Q7YFFAREXAMPLE", "arn": "arn:aws:iam::123456789012:user/Alice", "accountId": "123456789012", "accessKeyId": "", "userName": "Alice" }", "eventSource": "dynamodb.amazonaws.com", "awsRegion": "us-west-2", "eventName": "ListTables", "eventType": "AwsApiCall", "eventTime": "2025-07-01 02:23:52.000", "userAgent": "aws-sdk-java/1.12.746 Linux/5.10.240 OpenJDK/11.0.25+9-LTS ...", "requestParameters": "", "sourceIPAddress": "12.345.6.78" }
Puede usar esta información para ayudar a determinar cuándo y dónde se realizó la solicitud.
En el ejemplo, se realizó una solicitud ListTables de DynamoDB en 2025-07-01
02:23:52 (UTC) desde la dirección IP 12.345.6.78 con las credenciales del usuario de IAM llamado Alice. El valor del campo UserAgent muestra que la solicitud se realizó con la AWS SDK para Java versión 1.12.746 de un sistema Linux con JDK 11.
Para obtener una descripción de los campos del registro de AWS CloudTrail eventos, consulte el contenido del CloudTrail registro de eventos de administración, datos y actividad de red.
Si no CloudTrail está activado en su cuenta, póngase en contacto con el administrador de AWS cuentas de su organización para activarlo o utilice uno de los métodos alternativos descritos en las secciones anteriores.
CloudTrail Lake cobra por los datos ingeridos y escaneados por consulta. Para minimizar los costes, filtra las consultas por intervalos de tiempo y regiones específicos. Para conocer los precios actuales, consulte Precios de AWS CloudTrail