Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Rechercher des applications utilisant des AWS SDK pour Java clients 1.x
Avant de migrer vers le AWS SDK for Java 2.x, vous devez identifier les applications de votre environnement qui utilisent le SDK for Java 1.x clients. Vous pouvez utiliser CloudTrail les journaux pour suivre l'utilisation du SDK, rechercher des avertissements de dépréciation dans les journaux des applications, inspecter votre code source et créer des configurations, ou examiner vos artefacts Java déployables. Utilisez les méthodes disponibles dans votre environnement.
Utilisez CloudTrail Lake pour rechercher des applications avec des clients 1.x
AWS CloudTrail Lake vous permet d'interroger les événements enregistrés par CloudTrail. Procédez comme suit pour créer un lac de données identifiant les versions du SDK utilisées par vos applications :
-
Créez un lac CloudTrail de données. Reportez-vous au guide de l'utilisateur pour créer un magasin de données d'événements.
-
Après avoir créé le magasin de données, examinez le contenu de l'enregistrement. Le corps de l'enregistrement contient des champs qui déterminent l'action, le moment et le lieu demandés. Pour plus de détails, reportez-vous au guide de l'utilisateur pour le contenu des CloudTrail enregistrements.
-
Exécutez des requêtes sur vos données. Suivez le guide de l'utilisateur pour interroger et enregistrer les résultats des requêtes.
Le champ UserAgent de chaque enregistrement contient la version du SDK à l'origine de la demande. Utilisez ce champ pour identifier les applications utilisant le SDK for Java 1.x.
L'exemple de requête suivant trouve toutes les demandes d'identifiant provenant d'applications utilisateur et d'outils tiers effectuées avec le SDK for Java 1.x à partir du 17 juin 2025 : EventDatastore sample-Data-Store-Id
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
Voici un exemple de contenu d'événement dans le résultat de la requête :
{ "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" }
Vous pouvez utiliser ces informations pour déterminer quand et où la demande a été faite.
Dans l'exemple, une demande DynamoDB ListTables a été effectuée 2025-07-01
02:23:52 (UTC) à partir de l'12.345.6.78adresse IP avec les informations d'identification de l'utilisateur IAM nommé Alice. La valeur du champ UserAgent indique que la demande a été faite à l'aide de la AWS SDK pour Java version 1.12.746 d'un système Linux avec JDK 11.
Pour une description des champs de l'enregistrement d' AWS CloudTrail événement, voir le contenu de l'CloudTrail enregistrement pour les événements relatifs à la gestion, aux données et à l'activité réseau.
S'il n' CloudTrail est pas activé dans votre compte, contactez l'administrateur du AWS compte de votre organisation pour l'activer, ou utilisez l'une des méthodes alternatives décrites dans les sections suivantes.
CloudTrail Impliquez les frais pour les données ingérées et les données numérisées par requête. Pour minimiser les coûts, filtrez les requêtes en fonction de plages horaires et de régions spécifiques. Pour connaître la tarification actuelle, consultez Tarification AWS CloudTrail
Rechercher dans les journaux d'avertissement des applications pour détecter la dépréciation du SDK
À partir de la version 1.12.767 (publiée le 30 juillet 2024), la version AWS SDK pour Java 1.x émet un avertissement d'obsolescence au démarrage de l'application. Vous pouvez rechercher cet avertissement dans les journaux de vos applications afin d'identifier les applications et les hôtes qui utilisent le SDK for Java 1.x.
Le libellé exact de l'avertissement dépend de la version du SDK :
-
Versions 1.12.767 à 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... -
Versions 1.12.797 et supérieures :
WARNING: The AWS SDK for Java 1.x reached end of support on December 31, 2025...
La fin ... indique que le message d'avertissement continue avec du texte supplémentaire. Vous pouvez rechercher le préfixe commun pour The AWS SDK for Java 1.x trouver l'une ou l'autre version de l'avertissement.
L'exemple suivant montre comment rechercher cet avertissement à l'aide de grep :
grep -r "The AWS SDK for Java 1.x" /path/to/your/application/logs/
Si l'avertissement est détecté, la grep commande imprime les lignes de journal correspondantes. Si aucun avertissement n'est détecté, cela signifie que votre application n'utilise pas le SDK pour Java 1.x ou qu'elle utilise une version antérieure à 1.12.767. Dans ce cas, utilisez l'une des autres méthodes décrites dans ce document.
Rechercher le code source et les dépendances
Vous pouvez rechercher des références à la version AWS SDK pour Java 1.x dans votre base de code et dans vos fichiers de configuration de build. L'identifiant clé est l'ID de com.amazonaws groupe, qui est utilisé par tous les artefacts du SDK for Java 1.x.
Les exemples suivants montrent comment grep rechercher des com.amazonaws références dans des fichiers de projet Java courants.
Exemple : recherche dans les fichiers source Java pour les importations du SDK for Java 1.x (exécution depuis le répertoire racine du projet)
grep -r "import com.amazonaws" --include="*.java" .
Exemple de sortie :
src/main/java/com/example/App.java:import com.amazonaws.services.s3.AmazonS3;
Note
Le com.amazonaws package est également utilisé par les bibliothèques qui ne font pas partie du SDK pour Java 1.x, telles que. aws-lambda-java-core Pour confirmer qu'une importation provient du SDK for Java 1.x, vérifiez que l'ID d'artefact correspondant dans votre configuration ou dans pom.xml votre build.gradle configuration de gestion des dépendances commence par. aws-java-sdk-
Exemple : recherchez dans pom.xml les fichiers Maven les dépendances du SDK for Java 1.x (exécuté à partir du répertoire racine du projet)
grep -r "com.amazonaws" --include="pom.xml" .
Exemple de sortie :
pom.xml: <groupId>com.amazonaws</groupId>
Exemple : recherchez dans les fichiers de build Gradle les dépendances du SDK for Java 1.x (exécuté à partir du répertoire racine du projet)
grep -r "com.amazonaws:aws-java-sdk" --include="*.gradle" .
Exemple de sortie :
build.gradle: implementation 'com.amazonaws:aws-java-sdk-s3:1.12.xxx'
Les grep commandes précédentes identifient les références au SDK for Java 1.x déclarées directement dans vos fichiers source et de compilation. Cependant, votre application peut également dépendre du SDK pour Java 1.x de manière transitive, par le biais d'une bibliothèque tierce qui dépend elle-même du SDK. Utilisez l'arbre de dépendances de votre outil de génération pour trouver les dépendances directes et transitives du SDK for Java 1.x. Choisissez l'exemple qui correspond à votre système de compilation.
Exemple : utilisez Maven pour rechercher toutes les dépendances du SDK transitif pour Java 1.x (exécuté à partir du répertoire racine du projet)
mvn dependency:tree -Dincludes=com.amazonaws
Exemple de sortie :
[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
L'-Dincludes=com.amazonawsindicateur filtre l'arborescence pour n'afficher que les artefacts du SDK for Java 1.x. Dans cet exemple, aws-java-sdk-s3 il s'agit d'une dépendance directe, mais aws-java-sdk-dynamodb d'une dépendance transitive introduite parsome.thirdparty:library.
Exemple : utilisez Gradle pour rechercher toutes les dépendances du SDK transitif pour Java 1.x (exécuté à partir du répertoire racine du projet)
gradle dependencies --configuration runtimeClasspath | grep "com.amazonaws"
Exemple de sortie :
+--- 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 ne possède pas de filtre de dépendance intégré équivalent à celui de Maven-Dincludes, donc le rediriger grep est l'approche la plus simple.
Inspectez les artefacts Java déployables
Vous pouvez inspecter vos artefacts Java déployables (JARs, WARs, ou EARs) pour vérifier si la version AWS SDK pour Java 1.x est intégrée à votre application. Les fichiers d'archive Java sont des fichiers au format ZIP. Pour déterminer si le SDK for Java 1.x est présent, recherchez le com/amazonaws/sdk/versionInfo.properties fichier dans l'archive. Ce fichier est inclus dans le aws-java-sdk-core module et contient le numéro de version du SDK.
Vérification rapide à l'aide de la jar commande
Pour les fichiers uber-jars où toutes les classes de dépendance sont fusionnées au niveau supérieur, listez le contenu de l'archive et recherchez le fichier de version :
Dans les exemples suivants, remplacez par myapp.jar le chemin d'accès au fichier JAR de votre application.
jar -tf myapp.jar | grep 'versionInfo.properties'
Si le SDK est présent, le résultat est le suivant :
com/amazonaws/sdk/versionInfo.properties
Si la jar commande n'est pas disponible dans votre environnement (par exemple, images de conteneur uniquement ou images de conteneur minimales), vous pouvez utiliser unzip -l à la place :
unzip -l myapp.jar | grep 'versionInfo.properties'
Pour imprimer la version :
unzip -p myapp.jar com/amazonaws/sdk/versionInfo.properties
Exemple de sortie :
platform=java version=1.12.xxx
Note
Les commandes précédentes ne recherchent que les entrées de premier niveau dans uber-jars. Ils ne trouveront pas de classes de SDK dans Thin JARs (où les dépendances sont externes) ou dans des classes imbriquées JARs (comme celles qui se trouvent dans ou dans WARs les packages Lambda situés sous ou). EARs lib/ WEB-INF/lib/ Pour Thin JARs, vérifiez plutôt la configuration de votre build (pom.xml,build.gradle) ou votre arbre de dépendances. Pour Nested JARs, recherchez le bundle à l' JARs aide d'un outil capable de lire les archives ZIP de manière récursive sans les extraire sur le disque.