

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

# Esecuzione di una trasformazione nella riga di comando con Amazon Q Developer
<a name="run-CLI-transformations"></a>

Completa queste fasi per trasformare il codice nella riga di comando con lo strumento da riga di comando di Amazon Q Developer.

## Prerequisiti
<a name="CLI-transformation-prerequisites"></a>

Prima di avviare una trasformazione nella riga di comando, è necessario che siano soddisfatti i prerequisiti seguenti:
+ Se stai aggiornando la versione di codice Java, il progetto soddisfa i [prerequisiti per l’aggiornamento delle versioni di Java con Amazon Q](code-transformation.md#java-upgrade-prerequisites).
+ Se stai convertendo SQL incorporato in un’applicazione Java, l’applicazione soddisfa i [prerequisiti per la conversione di SQL incorporato con Amazon Q](transform-sql.md#sql-transform-prereqs).
+ Python è installato nel tuo ambiente a riga di comando. Ecco come installare lo strumento da riga di comando. La versione minima di Python attualmente supportata è 3.12.
+ Stai eseguendo la trasformazione su macOS o Linux. 
+ La dimensione dell’applicazione è pari o inferiore a 2 GB. 
+ Se hai dipendenze specifiche che desideri aggiornare Amazon Q, hai configurato un file di [aggiornamento delle dipendenze](#step-3-dependency-upgrade-file).

## Fase 1: scegli il metodo di autenticazione e aggiungi le autorizzazioni
<a name="step-1-permissions-auth"></a>

Puoi autenticare il Centro identità IAM per eseguire trasformazioni nella riga di comando. Accertati di disporre delle autorizzazioni appropriate.

**Nota**  
Le chiavi gestite dal cliente non sono supportate per le trasformazioni eseguite nella riga di comando.

### Aggiunta di autorizzazioni
<a name="transform-CLI-add-permissions"></a>

L’identità IAM associata all’abbonamento Amazon Q Developer che stai utilizzando per l’autenticazione deve disporre delle autorizzazioni per eseguire le trasformazioni nella riga di comando. Prima di procedere, assicurati che la tua identità IAM disponga delle autorizzazioni definite in [Consenti agli utenti di eseguire trasformazioni nella riga di comando](id-based-policy-examples-users.md#id-based-policy-examples-allow-cli-transformations).

### Esegui l’autenticazione con il Centro identità IAM tramite un abbonamento Amazon Q Developer
<a name="auth-IdC"></a>

Per autenticarti con il Centro identità IAM, devi essere [abbonato ad Amazon Q Developer Pro come utente della forza lavoro](subscribe-users.md) dall’amministratore e devi fornire l’URL di avvio per l’autenticazione tramite l’abbonamento. Tu o il tuo amministratore potete trovare l’URL di avvio nella console Amazon Q Developer. Per ulteriori informazioni, consulta [Individuazione dell’URL di avvio da utilizzare con Amazon Q Developer](manage-account-details.md).

Per aggiungere le autorizzazioni necessarie, consulta [Aggiunta di autorizzazioni](#transform-CLI-add-permissions).

Fornisci l’URL iniziale in [Fase 4: configurazione e autenticazione](#step-4-configure-auth).

## Fase 2: installare gli strumenti
<a name="step-2-install"></a>



1. [Scarica lo strumento da riga di comando di Amazon Q per le trasformazioni](https://desktop-release.codewhisperer.us-east-1.amazonaws.com/amzn_qct_cli/amzn_qct_cli-1.2.2.zip) e decomprimilo.

   Per scaricare una versione precedente dello strumento da riga di comando, consulta [Cronologia delle versioni](transform-CLI-versions.md).

1. Ti suggeriamo di configurare un ambiente virtuale in Python per installare lo strumento. Per creare un ambiente virtuale, apri una finestra di terminale nella directory in cui desideri installare lo strumento ed esegui:

   ```
   python -m venv qct-cli 
   ```

1. Per attivare l’ambiente virtuale: 

   ```
   source qct-cli/bin/activate 
   ```

1. Per installare lo strumento nella riga di comando, esegui il seguente comando con il percorso in cui hai decompresso lo strumento, in base all’architettura del tuo computer:

------
#### [ Linux\$1aarch64 ]

   ```
   pip install <path/to/unzipped-tool>/Linux_aarch64/amzn_qct_cli-1.2.2-py3-none-any.whl
   ```

------
#### [ Linux\$1x86\$164 ]

   ```
   pip install <path/to/unzipped-tool>/Linux_x86_64/amzn_qct_cli-1.2.2-py3-none-any.whl
   ```

------
**Nota**  
Se utilizzi una versione precedente dello strumento da riga di comando per le trasformazioni, sostituisci la `1.2.2` con la [versione scaricata](transform-CLI-versions.md).

1. Per verificare che lo strumento sia stato installato, esegui:

   ```
   which qct
   ```

## Fase 3: creazione di un file di aggiornamento delle dipendenze (facoltativo)
<a name="step-3-dependency-upgrade-file"></a>

Puoi fornire ad Amazon Q un file di *aggiornamento delle dipendenze*, un file YAML che elenca le dipendenze del progetto e le versioni a cui eseguire l’aggiornamento durante una trasformazione. Fornendo un file di aggiornamento delle dipendenze, puoi specificare dipendenze di terze e prime parti che Amazon Q potrebbe altrimenti non conoscere per aggiornare.

Le dipendenze di prime parti si riferiscono alle librerie, ai plugin e ai framework gestiti dall’organizzazione e sono disponibili solo localmente o sulla rete privata dell’organizzazione. Amazon Q è in grado di accedere alle dipendenze proprietarie quando esegue le build nell’ambiente locale. Per ulteriori informazioni, consulta [Compilazione del codice nell’ambiente locale](transform-CLI.md#local-builds). Le dipendenze di terze parti sono disponibili pubblicamente o sono dipendenze open source che non sono esclusive della tua organizzazione.

Puoi specificare le dipendenze di prime parti che desideri aggiornare in un file YAML e Amazon Q le aggiorna durante l’aggiornamento JDK (ad esempio, da Java 8 a 17). Puoi avviare una trasformazione separata (da 17 a 17 o da 21 a 21) dopo l’aggiornamento iniziale di JDK per aggiornare le dipendenze di terze parti.

Una volta che Amazon Q ha eseguito un aggiornamento JDK minimo, puoi avviare una trasformazione separata per aggiornare tutte le dipendenze di terze parti. In alternativa, puoi specificare le dipendenze di terze parti e le relative versioni in un file YAML per aggiornare tali dipendenze solo durante la trasformazione dell’aggiornamento della libreria.

Amazon Q ti chiederà di fornire un file di aggiornamento delle dipendenze durante la trasformazione. Se desideri fornirne uno, assicurati innanzitutto di aver configurato correttamente il file. Nel file YAML sono obbligatori i seguenti campi:
+ name - Il nome del file di aggiornamento delle dipendenze.
+ description (facoltativo) - Una descrizione del file di aggiornamento delle dipendenze e per quale trasformazione.
+ dependencyManagement - Contiene l’elenco delle dipendenze e dei plugin da aggiornare.
+ dependencies - Contiene il nome e la versione delle librerie da aggiornare.
+ plugins - Contiene i nomi e le versioni dei plugin da aggiornare.
+ identifier - Il nome della libreria, del plugin o di un’altra dipendenza.
+ targetVersion - La versione della dipendenza a cui eseguire l’aggiornamento.
+ versionProperty (facoltativo) - La versione della dipendenza che stai definendo, impostata con il tag `properties` nel file `pom.xml` dell’applicazione.
+ originType - Indica se la dipendenza è di prima o terza parte, specificata da FIRST\$1PARTY o THIRD\$1PARTY.

Di seguito è riportato un esempio di file YAML per l’aggiornamento delle dipendenze e la configurazione richiesta per l’analisi di Amazon Q:

```
name: dependency-upgrade
  
description: "Custom dependency version management for Java migration from JDK 8/11/17 to JDK 17/21"
  
  
dependencyManagement:
  
  dependencies:
  
    - identifier: "com.example:library1"
  
      targetVersion: "2.1.0"
  
      versionProperty: "library1.version"  # Optional
  
      originType: "FIRST_PARTY"   
  
    - identifier: "com.example:library2"
  
      targetVersion: "3.0.0"
  
      originType: "THIRD_PARTY"
  
  plugins:
  
    - identifier: "com.example.plugin"
  
      targetVersion: "1.2.0"
  
      versionProperty: "plugin.version"  # Optional
            
      originType: "THIRD_PARTY"
```

## Fase 4: configurazione e autenticazione
<a name="step-4-configure-auth"></a>

Prima di iniziare una trasformazione, devi autenticarti con il Centro identità IAM e fornire i dettagli di configurazione per la trasformazione. 

1. Per avviare il processo di configurazione della trasformazione, esegui il comando seguente:

   ```
   qct configure
   ```

1. Ti viene richiesto di inserire un percorso JDK per ogni versione Java supportata. È sufficiente specificare il percorso del JDK della versione di origine dell’applicazione Java, non la versione di destinazione.

1. Successivamente, per autenticarti con il Centro identità IAM, ti viene richiesto di inserire l’URL iniziale del profilo di abbonamento Amazon Q Developer Pro.

   Poi, inserisci il Regione AWS luogo in cui ti sei iscritto nel seguente formato:`us-east-1`. Per un elenco delle regioni supportate, consulta [Regioni supportate](regions.md). Per un elenco dei codici delle Regioni, consulta [Endpoint regionali ](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints) nella *Guida di Riferimenti generali di AWS *. 

1. Le tue preferenze di configurazione vengono salvate in un file configuration.ini. 

## Fase 5: eseguire una trasformazione
<a name="step-5-run-transformation"></a>

Scegli il tipo di trasformazione che stai eseguendo per visualizzare la configurazione e i comandi richiesti. 

**Nota**  
Non spegnere o chiudere il computer locale durante la trasformazione del codice, perché la compilazione lato client richiede una connessione di rete stabile.

------
#### [ Java upgrade ]

**Modifica del piano di trasformazione**

Durante gli aggiornamenti della versione Java, Amazon Q genera un piano di trasformazione che puoi rivedere prima dell’inizio della trasformazione. Hai la possibilità di richiedere le seguenti modifiche al piano:
+ Quali librerie Amazon Q aggiorna, dall’elenco incluso nel piano
  + Prompt di esempio:
    + Aggiorna solo <dependency1>, <dependency2> e <dependency5>
    + Non aggiornare <dependency1> o <dependency2>
+ La versione di destinazione a cui aggiornare una libreria
  + Prompt di esempio:
    + Aggiorna <dependency> a questa versione invece di <version>
+ Quali fasi deve eseguire Amazon Q
  + Prompt di esempio:
    + Completa solo le fasi 1-7
    + Non eseguire le fasi 5-9
+ Aggiungi dipendenze aggiuntive per l’aggiornamento (solo un’opzione quando esegui l’aggiornamento a una versione JDK più recente)
  + Prompt di esempio:
    + Aggiorna anche <dependency1> a <version2>

**Aggiornamento del codice Java**

1. Esegui il comando seguente per avviare una trasformazione per un aggiornamento Java. Sostituisci `<path-to-folder>` con il percorso della cartella con il codice che stai trasformando e `<your-target-java-version>` con `JAVA_17` o`JAVA_21`.

   ```
   qct transform --source_folder <path-to-folder>
       --target_version <your-target-java-version>
   ```

   Opzioni di comando aggiuntive: 
   + Se stai specificando le dipendenze da aggiornare, aggiungi l’opzione `--dependency_upgrade_file` con il percorso del file di aggiornamento delle dipendenze.
   + Se non desideri rivedere o aggiornare il piano di trasformazione, aggiungi il flag `--no-interactive` al tuo comando. Amazon Q non ti chiederà feedback sul piano e non avrai la possibilità di richiedere modifiche.

1. La tua versione di Maven viene verificata prima dell’inizio della trasformazione. Se disponi almeno della versione minima supportata, viene visualizzato il seguente output: 

   ```
   Running command: mvn --version at: path/to/current/directory 
   Your Maven version is supported for transformations.
   ```

   Se non disponi di una versione di Maven supportata, è necessario aggiornarla per continuare. Per ulteriori informazioni, consulta [Prerequisiti](#CLI-transformation-prerequisites). 

1. Se non hai aggiunto il flag `--no-interactive`, Amazon Q ti chiederà di fornire un feedback sul piano di trasformazione. Puoi spiegare le modifiche che desideri apportare in linguaggio naturale inglese e Amazon Q aggiornerà il piano se è in grado di supportare le modifiche richieste. 

1. Amazon Q inizia la trasformazione. Produrrà aggiornamenti sullo stato durante tutta la trasformazione. Una volta completata, Amazon Q fornisce il percorso in cui vengono emessi i risultati della trasformazione, i log e i file di configurazione. 

   Il codice aggiornato verrà inviato al nuovo ramo creato da Amazon Q. Amazon Q eseguirà il commit del codice in uno o più commit, a seconda della selezione effettuata durante l’esecuzione di `qct configure`. 

1. Se stai eseguendo un’altra trasformazione dopo l’aggiornamento della versione di Java, avvia la seconda trasformazione nello stesso ramo in cui hai eseguito le modifiche dalla prima trasformazione. 

------
#### [ SQL conversion ]

Prima di iniziare, assicurati di aver letto [Conversione di SQL incorporato in applicazioni Java con Amazon Q Developer](transform-sql.md) per comprendere i prerequisiti per questo tipo di trasformazione. 

1. Per convertire il codice SQL integrato, devi prima creare un file YAML contenente il percorso del file di metadati dello schema in [AWS DMS Schema Conversion](https://docs.aws.amazon.com/dms/latest/sbs/schema-conversion-oracle-postgresql.html).

   Di seguito è riportato il formato richiesto del file: 

   ```
   schema_conv_metadata_path: <path-to-metadata-zip-file>
   ```

1. Esegui il comando seguente per avviare una trasformazione per una conversione SQL. Sostituisci `<path-to-folder>` con il percorso della cartella con il codice che stai trasformando e `<path-to-sql-config-file>` con il percorso del file YAML che hai creato nella fase 1.

   ```
   qct transform --source_folder <path-to-folder>
       --sql_conversion_config_file <path-to-sql-config-file>
   ```

1. Se Amazon Q trova più schemi nel file di metadati dello schema, interromperà la trasformazione e fornirà un elenco degli schemi rilevati. Scegli lo schema da utilizzare per la conversione SQL, quindi aggiungi un nuovo campo `schema: <schema-name>` al file YAML. 

1. Amazon Q inizia la trasformazione. Produrrà aggiornamenti sullo stato durante tutta la trasformazione. Una volta completata, Amazon Q fornisce il percorso in cui vengono emessi i risultati della trasformazione, i log e i file di configurazione. 

   Il codice aggiornato verrà inviato al nuovo ramo creato da Amazon Q.

------

## Metti in pausa o annulla una trasformazione
<a name="pause-cancel-CLI-transformations"></a>

Puoi scegliere di sospendere o annullare l’attuale processo di trasformazione. È possibile sospendere un processo di trasformazione per un massimo di 12 ore prima di riprenderlo nuovamente.

**Per sospendere o annullare un processo di trasformazione del codice**

1. Nel terminale CLI, premi **Ctrl\$1C** sulla tastiera.

1. Seleziona se vuoi mettere in pausa o annullare la trasformazione.
   + Immetti `1` se desideri mettere in pausa il processo di trasformazione del codice. È possibile riprendere il lavoro entro 12 ore per continuare la trasformazione del codice utilizzando il seguente comando QCT: ``qct transform --source_folder=≤/Path/Given/Originally/To/QCT>``.
   + Immetti `2` se desideri annullare il processo di trasformazione del codice.