View a markdown version of this page

Suchen Sie nach Anwendungen, die AWS SDK für Java 1.x-Clients verwenden - AWS SDK for Java 2.x

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Suchen Sie nach Anwendungen, die AWS SDK für Java 1.x-Clients verwenden

Vor der Migration auf die müssen Sie ermitteln AWS SDK for Java 2.x, welche Anwendungen in Ihrer Umgebung das SDK for Java 1.x-Clients verwenden. Sie können CloudTrail Protokolle verwenden, um die SDK-Nutzung nachzuverfolgen, Anwendungsprotokolle nach veralteten Versionen zu durchsuchen, Ihren Quellcode und Ihre Build-Konfigurationen zu überprüfen oder Ihre bereitstellbaren Java-Artefakte zu untersuchen. Verwenden Sie die Methoden, die in Ihrer Umgebung verfügbar sind.

Verwenden Sie CloudTrail Lake, um Anwendungen mit 1.x-Clients zu finden

AWS CloudTrail Mit Lake können Sie Ereignisse abfragen, die von CloudTrail aufgezeichnet wurden. Gehen Sie wie folgt vor, um einen Data Lake zu erstellen, der die von Ihren Anwendungen verwendeten SDK-Versionen identifiziert:

  1. Erstellen Sie einen CloudTrail Data Lake. Informationen zum Erstellen eines Ereignisdatenspeichers finden Sie im Benutzerhandbuch.

  2. Nachdem Sie den Datenspeicher erstellt haben, überprüfen Sie den Inhalt des Datensatzes. Der Datensatzkörper enthält Felder, die die angeforderte Aktion, den Zeitpunkt und den Ort bestimmen. Einzelheiten finden Sie im Benutzerhandbuch für den Inhalt des CloudTrail Datensatzes.

  3. Führen Sie Abfragen für Ihre Daten durch. Folgen Sie dem Benutzerhandbuch, um Abfrageergebnisse abzufragen und zu speichern.

Das UserAgent-Feld in jedem Datensatz enthält die SDK-Version, die die Anfrage gestellt hat. Verwenden Sie dieses Feld, um Anwendungen zu identifizieren, die SDK for Java 1.x verwenden.

Die folgende Beispielabfrage findet alle Anfragen von Benutzeranwendungen und Tools von Drittanbietern, die ab dem 17. Juni 2025 mit SDK for Java 1.x gestellt wurden, nach einer EventDatastore ID: 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

Ein Beispiel für den Inhalt eines Ereignisses im Abfrageergebnis sieht wie folgt aus:

{ "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" }

Anhand dieser Informationen können Sie feststellen, wann und wo die Anfrage gestellt wurde.

In dem Beispiel wurde 2025-07-01 02:23:52 (UTC) von der IP-Adresse aus eine ListTables DynamoDB-Anfrage 12.345.6.78 mit den Anmeldeinformationen des IAM-Benutzers namens Alice gestellt. Der Wert des Felds UserAgent zeigt, dass die Anfrage mit der AWS SDK für Java Version 1.12.746 von einem Linux-System mit JDK 11 gestellt wurde.

Eine Beschreibung der Felder im AWS CloudTrail Ereignisdatensatz finden Sie unter CloudTrail Datensatzinhalte für Verwaltungs-, Daten- und Netzwerkaktivitätsereignisse.

Wenn CloudTrail es in Ihrem Konto nicht aktiviert ist, wenden Sie sich an den AWS Kontoadministrator Ihrer Organisation, um es zu aktivieren, oder verwenden Sie eine der in den folgenden Abschnitten beschriebenen alternativen Methoden.

CloudTrail Lake berechnet Gebühren für die pro Abfrage aufgenommenen und gescannten Daten. Um die Kosten zu minimieren, filtern Sie Abfragen nach bestimmten Zeiträumen und Regionen. Die aktuellen Preise finden Sie unter AWS CloudTrail -Preisinformationen.

Suchen Sie in den Protokollen der Anwendung auf Warnstufe nach SDK-Verfall

Ab Version 1.12.767 (veröffentlicht am 30. Juli 2024) gibt Version AWS SDK für Java 1.x beim Start der Anwendung eine Verfallswarnung aus. Sie können Ihre Anwendungsprotokolle nach dieser Warnung durchsuchen, um festzustellen, welche Anwendungen und Hosts SDK for Java 1.x verwenden.

Der genaue Wortlaut der Warnung hängt von der SDK-Version ab:

  • Versionen 1.12.767 bis 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...

  • Versionen 1.12.797 und höher:

    WARNING: The AWS SDK for Java 1.x reached end of support on December 31, 2025...

Das Ende ... weist darauf hin, dass die Warnmeldung mit zusätzlichem Text fortgesetzt wird. Sie können nach dem gemeinsamen Präfix suchenThe AWS SDK for Java 1.x, um eine der beiden Versionen der Warnung zu finden.

Das folgende Beispiel zeigt die Suche nach dieser Warnung mitgrep:

grep -r "The AWS SDK for Java 1.x" /path/to/your/application/logs/

Wenn die Warnung gefunden wird, druckt der grep Befehl die entsprechenden Protokollzeilen. Wenn keine Warnung gefunden wird, verwendet Ihre Anwendung entweder kein SDK for Java 1.x oder sie verwendet eine Version vor 1.12.767. Verwenden Sie in diesem Fall eine der anderen in diesem Dokument beschriebenen Methoden.

Suchen Sie nach Quellcode und Abhängigkeiten

Sie können Ihre Codebasis durchsuchen und Konfigurationsdateien nach Verweisen auf Version AWS SDK für Java 1.x erstellen. Die Schlüssel-ID ist die com.amazonaws Gruppen-ID, die von allen SDK for Java 1.x-Artefakten verwendet wird.

Die folgenden Beispiele zeigen, wie die Suche grep nach com.amazonaws Verweisen in gängigen Java-Projektdateien verwendet wird.

Beispiel: Suchen Sie in Java-Quelldateien nach SDK for Java 1.x-Importe (vom Projektstammverzeichnis aus ausgeführt)

grep -r "import com.amazonaws" --include="*.java" .

Beispielausgabe:

src/main/java/com/example/App.java:import com.amazonaws.services.s3.AmazonS3;
Anmerkung

Das com.amazonaws Paket wird auch von Bibliotheken verwendet, die nicht Teil des SDK for Java 1.x sind, wie aws-lambda-java-core z. Um zu bestätigen, dass ein Import aus dem SDK for Java 1.x stammt, überprüfen Sie, ob die entsprechende Artefakt-ID in Ihrer pom.xmlbuild.gradle, oder Abhängigkeitsverwaltungskonfiguration mit beginnt. aws-java-sdk-

Beispiel: Suche in pom.xml Maven-Dateien nach SDK for Java 1.x-Abhängigkeiten (vom Projektstammverzeichnis aus ausgeführt)

grep -r "com.amazonaws" --include="pom.xml" .

Beispielausgabe:

pom.xml: <groupId>com.amazonaws</groupId>

Beispiel: Durchsuchen Sie Gradle-Build-Dateien nach SDK for Java 1.x-Abhängigkeiten (vom Projektstammverzeichnis aus ausgeführt)

grep -r "com.amazonaws:aws-java-sdk" --include="*.gradle" .

Beispielausgabe:

build.gradle: implementation 'com.amazonaws:aws-java-sdk-s3:1.12.xxx'

Die obigen grep Befehle identifizieren SDK for Java 1.x-Verweise, die direkt in Ihren Quell- und Build-Dateien deklariert sind. Ihre Anwendung kann jedoch auch transitiv vom SDK for Java 1.x abhängen — über eine Drittanbieterbibliothek, die wiederum vom SDK abhängt. Verwenden Sie den Abhängigkeitsbaum Ihres Build-Tools, um sowohl direktes als auch transitives SDK for Java 1.x-Abhängigkeiten zu finden. Wählen Sie das Beispiel, das zu Ihrem Build-System passt.

Beispiel: Verwenden Sie Maven, um alle transitiven SDK-Abhängigkeiten für Java 1.x zu finden (vom Projektstammverzeichnis aus ausgeführt)

mvn dependency:tree -Dincludes=com.amazonaws

Beispielausgabe:

[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

Das -Dincludes=com.amazonaws Flag filtert den Baum so, dass nur SDK for Java 1.x-Artefakte angezeigt werden. In diesem Beispiel aws-java-sdk-s3 handelt es sich um eine direkte Abhängigkeit, aber aws-java-sdk-dynamodb es handelt sich um eine transitive Abhängigkeit, die durch verursacht wird. some.thirdparty:library

Beispiel: Verwenden Sie Gradle, um alle transitiven SDK-Abhängigkeiten für Java 1.x zu finden (vom Projektstammverzeichnis aus ausgeführt)

gradle dependencies --configuration runtimeClasspath | grep "com.amazonaws"

Beispielausgabe:

+--- 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 hat keinen eingebauten Abhängigkeitsfilter, der dem von Maven entspricht-Dincludes, daher ist die Weiterleitung der einfachste Ansatz. grep

Untersuchen Sie bereitstellbare Java-Artefakte

Sie können Ihre bereitstellbaren Java-Artefakte (JARs,, oder EARs) überprüfen WARs, um zu überprüfen, ob die Version AWS SDK für Java 1.x im Paket Ihrer Anwendung enthalten ist. Java-Archivdateien sind Dateien im ZIP-Format. Um festzustellen, ob SDK for Java 1.x vorhanden ist, suchen Sie com/amazonaws/sdk/versionInfo.properties im Archiv nach der Datei. Diese Datei ist im aws-java-sdk-core Modul enthalten und enthält die SDK-Versionsnummer.

Schneller Check mit dem jar Befehl

Bei Uber-Jars, bei denen alle Abhängigkeitsklassen auf der obersten Ebene zusammengeführt werden, listen Sie den Archivinhalt auf und suchen Sie nach der Versionsdatei:

Ersetzen Sie in den folgenden Beispielen myapp.jar durch den Pfad zur JAR-Datei Ihrer Anwendung.

jar -tf myapp.jar | grep 'versionInfo.properties'

Wenn das SDK vorhanden ist, lautet die Ausgabe:

com/amazonaws/sdk/versionInfo.properties

Wenn der jar Befehl in Ihrer Umgebung nicht verfügbar ist (z. B. nur JRE oder minimale Container-Images), können Sie stattdessen Folgendes verwendenunzip -l:

unzip -l myapp.jar | grep 'versionInfo.properties'

Um die Version zu drucken:

unzip -p myapp.jar com/amazonaws/sdk/versionInfo.properties

Beispielausgabe:

platform=java version=1.12.xxx
Anmerkung

Die obigen Befehle suchen nur nach Einträgen der obersten Ebene in Uber-Jars. Sie werden keine SDK-Klassen in Thin JARs (wo Abhängigkeiten extern sind) oder innerhalb verschachtelter Klassen JARs (wie die in WARs, EARs, oder Lambda-Paketen unter lib/ oderWEB-INF/lib/) finden. Überprüfen Sie bei JARs Thin stattdessen Ihre Build-Konfiguration (pom.xml,build.gradle) oder Ihren Abhängigkeitsbaum. Suchen Sie nach Nested im Paket JARs mit einem Tool JARs, das ZIP-Archive rekursiv lesen kann, ohne sie auf die Festplatte zu extrahieren.