

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à.

# Trova applicazioni utilizzando i AWS SDK per Java client 1.x
<a name="migration-find-apps-using-v1"></a>

Prima di effettuare la migrazione a AWS SDK for Java 2.x, è necessario identificare quali applicazioni nel proprio ambiente utilizzano i client SDK for Java 1.x. È possibile utilizzare CloudTrail i log per tracciare l'utilizzo dell'SDK, cercare nei log delle applicazioni avvisi di obsolescenza, ispezionare il codice sorgente e creare configurazioni o esaminare gli artefatti Java distribuibili. Utilizzate i metodi disponibili nel vostro ambiente.

## Usa CloudTrail Lake per trovare applicazioni con client 1.x
<a name="migration-find-v1-apps-with-cloudtrail"></a>

AWS CloudTrail Lake ti consente di interrogare gli eventi registrati da CloudTrail. Segui questi passaggi per creare un data lake che identifichi le versioni SDK utilizzate dalle tue applicazioni:

1. Crea un CloudTrail data lake. Consulta la [Guida per l'utente](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-event-data-store.html) per creare un data store di eventi.

1. Dopo aver creato il data store, esaminate il contenuto del record. Il corpo del record contiene campi che determinano l'azione, la tempistica e la posizione richieste. Per i dettagli, consulta la [Guida per l'utente per i contenuti dei CloudTrail record](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-record-contents.html).

1. Esegui interrogazioni sui tuoi dati. Segui la [Guida per l'utente per interrogare e salvare i risultati delle query](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/query-run-query.html).

Il campo *UserAgent* in ogni record contiene la versione SDK che ha effettuato la richiesta. Utilizzate questo campo per identificare le applicazioni che utilizzano SDK for Java 1.x.

La seguente query di esempio trova tutte le richieste di ID da applicazioni utente e strumenti di terze parti realizzate con SDK for Java 1.x a partire dal 17 giugno 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
```

Un esempio di contenuto dell'evento nel risultato della query è simile al seguente:

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

È possibile utilizzare queste informazioni per determinare quando e dove è stata effettuata la richiesta.

Nell'esempio, è stata effettuata una richiesta `ListTables` DynamoDB `2025-07-01 02:23:52 (UTC)` all'`12.345.6.78`indirizzo IP con le credenziali dell'utente IAM di nome Alice. Il valore del campo *UserAgent* indica che la richiesta è stata effettuata utilizzando la AWS SDK per Java versione di un sistema Linux con `1.12.746` JDK 11.

Per una descrizione dei campi del record degli AWS CloudTrail eventi, consulta il [contenuto dei CloudTrail record per gli eventi di gestione, dati e attività di rete](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-record-contents.html).

Se non CloudTrail è abilitato nel tuo account, contatta l'amministratore dell' AWS account dell'organizzazione per abilitarlo oppure utilizza uno dei metodi alternativi descritti nelle sezioni seguenti.

CloudTrail Lake addebita i costi per i dati acquisiti e i dati scansionati per ogni query. Per ridurre al minimo i costi, filtra le query in base a intervalli di tempo e aree geografiche specifici. Per i prezzi correnti, consulta [Prezzi di AWS CloudTrail](https://aws.amazon.com/cloudtrail/pricing/).

## Cerca nei log a livello di avviso delle applicazioni la deprecazione dell'SDK
<a name="migration-find-v1-apps-log-warning"></a>

A partire dalla versione 1.12.767 (rilasciata il 30 luglio 2024), la versione 1.x emette un avviso di obsolescenza all'avvio dell'applicazione. AWS SDK per Java È possibile cercare questo avviso nei registri delle applicazioni per identificare quali applicazioni e host utilizzano SDK for Java 1.x.

L'esatta formulazione dell'avviso dipende dalla versione dell'SDK:
+ Versioni da 1.12.767 a 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...`
+ Versioni 1.12.797 e successive:

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

La fine `...` indica che il messaggio di avviso continua con testo aggiuntivo. È possibile cercare il prefisso comune per `The AWS SDK for Java 1.x` trovare una delle due versioni dell'avviso.

L'esempio seguente mostra la ricerca di questo avviso utilizzando: `grep`

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

Se viene trovato l'avviso, il `grep` comando stampa le righe di registro corrispondenti. Se non viene trovato alcun avviso, l'applicazione non utilizza SDK for Java 1.x o utilizza una versione precedente alla 1.12.767. In tal caso, utilizzate uno degli altri metodi descritti in questo documento.

## Cerca nel codice sorgente e nelle dipendenze
<a name="migration-find-v1-apps-source-code"></a>

Puoi cercare nella tua codebase e creare file di configurazione per trovare riferimenti alla AWS SDK per Java versione 1.x. L'identificatore chiave è l'ID del `com.amazonaws` gruppo, utilizzato da tutti gli artefatti SDK for Java 1.x.

Gli esempi seguenti ne illustrano l'utilizzo `grep` per la ricerca di `com.amazonaws` riferimenti nei comuni file di progetto Java.

**Esempio: ricerca nei file sorgente Java per le importazioni SDK for Java 1.x (eseguite dalla directory principale del progetto)**

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

Output di esempio:

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

**Nota**  
Il `com.amazonaws` pacchetto viene utilizzato anche da librerie che non fanno parte dell'SDK for Java 1.x, come. `aws-lambda-java-core` Per confermare che un'importazione proviene da SDK for Java 1.x, verifica che l'ID dell'artefatto corrispondente nella configurazione o nella `pom.xml` configurazione `build.gradle` di gestione delle dipendenze inizi con. `aws-java-sdk-`

**Esempio: cerca nei `pom.xml` file Maven le dipendenze SDK for Java 1.x (eseguite dalla directory principale del progetto)**

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

Output di esempio:

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

**Esempio: cerca nei file di build di Gradle le dipendenze SDK for Java 1.x (eseguito dalla directory principale del progetto)**

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

Output di esempio:

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

I `grep` comandi precedenti identificano i riferimenti SDK for Java 1.x dichiarati direttamente nei file sorgente e di build. Tuttavia, l'applicazione potrebbe dipendere dall'SDK for Java 1.x anche in modo transitivo, tramite una libreria di terze parti che a sua volta dipende dall'SDK. Usa l'albero delle dipendenze dello strumento di compilazione per trovare le dipendenze dirette e transitive dell'SDK for Java 1.x. Scegli l'esempio che corrisponde al tuo sistema di compilazione.

**Esempio: usa Maven per trovare tutte le dipendenze transitive SDK for Java 1.x (eseguite dalla directory principale del progetto)**

```
mvn dependency:tree -Dincludes=com.amazonaws
```

Output di esempio:

```
[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
```

Il `-Dincludes=com.amazonaws` flag filtra l'albero per mostrare solo gli artefatti SDK for Java 1.x. In questo esempio, `aws-java-sdk-s3` è una dipendenza diretta, ma `aws-java-sdk-dynamodb` è una dipendenza transitiva introdotta da. `some.thirdparty:library`

**Esempio: usa Gradle per trovare tutte le dipendenze transitive SDK for Java 1.x (eseguite dalla directory principale del progetto)**

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

Output di esempio:

```
+--- 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 non ha un filtro di dipendenza integrato equivalente a quello di Maven, quindi il piping through è `-Dincludes` l'approccio più semplice. `grep`

## Ispeziona gli artefatti Java distribuibili
<a name="migration-find-v1-apps-inspect-artifacts"></a>

È possibile ispezionare gli artefatti Java distribuibili (JARs,, or EARs) per confermare se la versione 1.x è WARs inclusa nel pacchetto dell'applicazione. AWS SDK per Java I file di archivio Java sono file in formato ZIP. Per determinare se SDK for Java 1.x è presente, cerca il `com/amazonaws/sdk/versionInfo.properties` file all'interno dell'archivio. Questo file è incluso nel `aws-java-sdk-core` modulo e contiene il numero di versione dell'SDK.

### Controllo rapido con il comando `jar`
<a name="migration-find-v1-apps-jar-command"></a>

Per gli uber-jar in cui tutte le classi di dipendenza vengono unite al livello superiore, elenca il contenuto dell'archivio e cerca il file della versione:

Negli esempi seguenti, sostituiscilo `myapp.jar` con il percorso del file JAR dell'applicazione.

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

Se l'SDK è presente, l'output è:

```
com/amazonaws/sdk/versionInfo.properties
```

Se il `jar` comando non è disponibile nel tuo ambiente (ad esempio, solo per JRE o immagini minime di container), puoi utilizzare invece: `unzip -l`

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

Per stampare la versione:

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

Output di esempio:

```
platform=java
version=1.12.xxx
```

**Nota**  
I comandi precedenti cercano solo le voci di primo livello in uber-jars. Non troveranno le classi SDK in thin JARs (dove le dipendenze sono esterne) o all'interno di pacchetti annidati JARs (come quelle in WARs, EARs o i pacchetti Lambda sotto o). `lib/` `WEB-INF/lib/` Per thin JARs, controllate invece la configurazione della build (`pom.xml`,`build.gradle`) o l'albero delle dipendenze. Per nested JARs, cerca il pacchetto JARs utilizzando uno strumento in grado di leggere gli archivi ZIP in modo ricorsivo senza estrarli su disco.