

# Utilizzo di AWS Lambda tramite il AWS Toolkit for JetBrains
<a name="building-lambda"></a>

Negli argomenti seguenti viene descritto come lavorare con le funzioni AWS Lambda tramite il AWS Toolkit for JetBrains.

**Topics**
+ [Runtime Lambda](lambda-runtimes.md)
+ [Creazione di una funzione](create-new-lambda.md)
+ [Esecuzione (richiamo) o debug di una funzione locale](invoke-lambda.md)
+ [Esecuzione (richiamo) di una funzione remota](lambda-remote.md)
+ [Modifica (aggiornamento) delle impostazioni della funzione](lambda-update.md)
+ [Eliminazione di una funzione](lambda-delete.md)

# Runtime e supporto di AWS Lambda nel AWS Toolkit for JetBrains
<a name="lambda-runtimes"></a>

AWS Lambda supporta più lingue attraverso l'uso di runtime. Un runtime fornisce un ambiente specifico del linguaggio che inoltra gli eventi di chiamata, le informazioni di contesto e le risposte tra Lambda e la funzione. Per informazioni dettagliate sul servizio Lambda e sui runtime supportati, consulta l'argomento [Lambda runtimes](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtime-support-policy) della *Guida per l'utente di AWS Lambda*.

Di seguito vengono descritti gli ambienti di runtime attualmente supportati per l'uso con il AWS Toolkit for JetBrains.


| Nome | Identificatore | Sistema operativo | Architettura | 
| --- | --- | --- | --- | 
|  Node.js 18  |  nodejs18.x  |  Amazon Linux 2  |  x86\$164, arm64  | 
|  Node.js 16  |  nodejs16.x  |  Amazon Linux 2  |  x86\$164, arm64  | 
|  Node.js 14  |  nodejs14.x  |  Amazon Linux 2  |  x86\$164, arm64  | 
|  Python 3.11  |  python3.11  |  Amazon Linux 2  |  x86\$164, arm64  | 
|  Python 3.10  |  python3.10  |  Amazon Linux 2  |  x86\$164, arm64  | 
|  Python 3.9  |  python3.9  |  Amazon Linux 2  |  x86\$164, arm64  | 
|  Python 3.8  |  python3.8  |  Amazon Linux 2  |  x86\$164, arm64  | 
|  Python 3.7  |  python3.7  |  Amazon Linux 2  |  x86\$164  | 
|  Java 17  |  java17  |  Amazon Linux 2  |  x86\$164, arm64  | 
|  Java 11  |  java11  |  Amazon Linux 2  |  x86\$164, arm64  | 
|  Java 8  |  java8.al2  |  Amazon Linux 2  |  x86\$164, arm64  | 
|  Java 8  |  java8  |  Amazon Linux 2  |  x86\$164  | 
|  .NET 6  |  dotnet6  |  Amazon Linux 2  |  x86\$164, arm64  | 
|  Go 1.x  |  go1.x  |  Amazon Linux 2  |  x86\$164  | 

# Creazione di una funzione AWS Lambda tramite il AWS Toolkit for JetBrains
<a name="create-new-lambda"></a>

Puoi utilizzare AWS Toolkit for JetBrains per creare una funzione AWS Lambda che fa parte di un'applicazione serverless AWS. In alternativa, puoi creare una funzione Lambda standalone.

Per creare una funzione Lambda che fa parte di un'applicazione serverless AWS, ignora il resto di questo argomento e consulta la pagina [Creazione di un'applicazione](deploy-serverless-app.md).

Per creare una funzione Lambda standalone, devi innanzitutto installare AWS Toolkit for JetBrains e, se non l'hai ancora fatto, connetterti a un account AWS per la prima volta. Quindi, con IntelliJ IDEA, PyCharm, WebStorm o JetBrains Rider già in esecuzione, esegui una delle seguenti operazioni:
+ Aprire AWS Explorer, se non è già aperto. Se devi passare a un'altra regione AWS per creare la funzione, esegui subito l'operazione. Quindi fai clic con il pulsante destro del mouse su **Lambda** e scegli **Crea nuovo AWS Lambda**.  
![\[Creazione di una funzione AWS Lambda partendo dall'Esploratore AWS\]](http://docs.aws.amazon.com/it_it/toolkit-for-jetbrains/latest/userguide/images/lambda-create-aws-explorer.png)

  Completare le operazioni nella finestra di dialogo [Create Function (Crea funzione)](create-function-dialog.md) e quindi scegliere **Create Function (Crea funzione)**. AWS Toolkit for JetBrains crea uno stack AWS CloudFormation corrispondente per l'implementazione e aggiunge il nome della funzione all'elenco **Lambda** nell'**Esploratore AWS**. Se l'implementazione non riesce, puoi provare a comprenderne il motivo visualizzando i log eventi per lo stack.
+ Creare un file di codice che implementa un gestore di funzioni per [Java](https://docs.aws.amazon.com/lambda/latest/dg/java-programming-model-handler-types.html), [Python](https://docs.aws.amazon.com/lambda/latest/dg/python-programming-model-handler-types.html), [Node.js](https://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-handler.html) o [C\$1](https://docs.aws.amazon.com/lambda/latest/dg/dotnet-programming-model-handler-types.html). 

  Se devi passare a un'altra regione AWS per creare la funzione remota da eseguire (richiamare), esegui subito l'operazione. Quindi, nel file di codice, scegli l'icona **Lambda** nel margine accanto al gestore delle funzioni, quindi scegli **Crea nuovo AWS Lambda**. Completare le operazioni nella finestra di dialogo [Create Function (Crea funzione)](create-function-dialog.md) e quindi scegliere **Create Function (Crea funzione)**.  
![\[Creazione di una funzione AWS Lambda partendo da un gestore di funzioni esistente in un file di codice\]](http://docs.aws.amazon.com/it_it/toolkit-for-jetbrains/latest/userguide/images/lambda-create-code-file.png)
**Nota**  
Se l'icona **Lambda** non viene visualizzata nel margine accanto al gestore delle funzioni, prova a visualizzarla per il progetto corrente selezionando la seguente casella in **Impostazioni**/**Preferenze**: **Strumenti**, **AWS**, **Impostazioni del progetto**, **Mostra le icone a margine per tutti i possibili gestori AWS Lambda**. Inoltre, se il gestore della funzione è già definito nel modello AWS SAM corrispondente, il comando **Crea nuovo AWS Lambda** non verrà visualizzato.

  Dopo aver scelto **Crea funzione**, AWS Toolkit for JetBrains crea una funzione corrispondente nel servizio Lambda per l'account AWS connesso. Se l'operazione ha esito positivo, dopo l'aggiornamento dell'**Esploratore AWS**, nell'elenco **Lambda** viene visualizzato il nome della nuova funzione.
+ Se è già disponibile un progetto contenente una funzione AWS Lambda e devi prima passare a un'altra Regione AWS per creare la funzione, esegui subito l'operazione. Nel file di codice contenente il gestore di funzioni per [Java](https://docs.aws.amazon.com/lambda/latest/dg/java-programming-model-handler-types.html), [Python](https://docs.aws.amazon.com/lambda/latest/dg/python-programming-model-handler-types.html), [Node.js](https://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-handler.html) oppure [C\$1](https://docs.aws.amazon.com/lambda/latest/dg/dotnet-programming-model-handler-types.html), scegli l'icona **Lambda** a margine del gestore di funzioni. Scegli **Crea nuovo AWS Lambda**, completa le operazioni nella finestra di dialogo [Crea funzione](create-function-dialog.md), quindi scegli **Crea funzione**.  
![\[Creazione di una funzione AWS Lambda partendo da un gestore di funzioni esistente in un file di codice\]](http://docs.aws.amazon.com/it_it/toolkit-for-jetbrains/latest/userguide/images/lambda-create-code-file.png)
**Nota**  
Se l'icona **Lambda** non viene visualizzata nel margine accanto al gestore delle funzioni, prova a visualizzarla per il progetto corrente selezionando la seguente casella in **Impostazioni**/**Preferenze**: **Strumenti**, **AWS**, **Impostazioni del progetto**, **Mostra le icone a margine per tutti i possibili gestori AWS Lambda**. Inoltre, se il gestore della funzione è già definito nel modello AWS SAM corrispondente, il comando **Crea nuovo AWS Lambda** non verrà visualizzato.

  Dopo aver scelto **Crea funzione**, AWS Toolkit for JetBrains crea una funzione corrispondente nel servizio Lambda per l'account AWS connesso. Se l'operazione ha esito positivo, dopo l'aggiornamento dell'**Esploratore AWS**, nell'elenco **Lambda** viene visualizzato il nome della nuova funzione.

Dopo aver creato la funzione, puoi eseguire (invocare) o eseguire il debug della versione locale della funzione o eseguire (invocare) la versione remota.

# Esecuzione (richiamo) o debug della versione locale di una funzione AWS Lambda tramite il AWS Toolkit for JetBrains
<a name="invoke-lambda"></a>

Per completare questa procedura, devi creare la funzione AWS Lambda che vuoi eseguire (richiamare) o sottoporre a debug, se non è già stata creata.
**Nota**  
Se vuoi eseguire (richiamare) o sottoporre a debug la versione locale di una funzione Lambda ed eseguire (richiamare) o sottoporre a debug locale una funzione con proprietà non predefinite o facoltative, devi innanzitutto impostare tali proprietà nel file di modello AWS SAM corrispondente della funzione (ad esempio, in un file denominato `template.yaml` nel progetto). Per l'elenco delle impostazioni di proprietà disponibili, consulta [AWS::Serverless::Function](https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction) nel repository [awslabs/serverless-application-model](https://github.com/awslabs/serverless-application-model/) su GitHub.

1. Completa una delle seguenti operazioni:
   + Nel file di codice contenente il gestore di funzioni per [Java](https://docs.aws.amazon.com/lambda/latest/dg/java-programming-model-handler-types.html), [Python](https://docs.aws.amazon.com/lambda/latest/dg/python-programming-model-handler-types.html), [Node.js](https://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-handler.html) oppure [C\$1](https://docs.aws.amazon.com/lambda/latest/dg/dotnet-programming-model-handler-types.html), scegli l'icona Lambda a margine del gestore di funzioni. Scegliere **Run '[Local]' (Esegui '[Locale]')** o **Debug '[Local]' (Debug '[Locale]')**.   
![\[Esecuzione o debug della versione locale di una funzione Lambda partendo dal gestore di funzioni nel file di codice\]](http://docs.aws.amazon.com/it_it/toolkit-for-jetbrains/latest/userguide/images/lambda-local-code.png)
   + Con la finestra dello strumento **Project (Progetto)** aperta con il progetto che contiene la funzione visualizzato, aprire il file `template.yaml` del progetto. Scegliere l'icona **Run (Esegui)** al margine della definizione della risorsa della funzione, quindi scegliere **Run '[Local]' (Esegui '[Locale]')** o **Debug '[Local]' (Debug '[Locale]')**.  
![\[Esecuzione o debug della versione locale di una funzione Lambda partendo dalla definizione della funzione nel file di modello AWS SAM\]](http://docs.aws.amazon.com/it_it/toolkit-for-jetbrains/latest/userguide/images/lambda-local-template.png)

1. Completa le operazioni nella finestra di dialogo [Modifica configurazione (impostazioni della funzione locale)](run-debug-configurations-dialog-local.md) se visualizzata, quindi scegli **Esegui** o **Debug**. I risultati vengono visualizzati nella finestra dello strumento **Run (Esegui)** o **Debug**.
   + Se la finestra di dialogo **Modifica configurazione** non viene visualizzata e desideri modificare la configurazione esistente, prima modifica la configurazione e quindi ripeti questa procedura dall'inizio. 
   + Se i dettagli di configurazione sono mancanti, espandere **Templates (Modelli)**, **AWS Lambda** e scegliere **Local (Locale)**. Scegli **OK**, quindi ripeti questa procedura dall'inizio. 

# Esecuzione (richiamo) della versione remota di una funzione AWS Lambda tramite il AWS Toolkit for JetBrains
<a name="lambda-remote"></a>

Una versione *remota* di una funzione AWS Lambda è una funzione il cui codice sorgente esiste già all'interno del servizio Lambda per un account AWS.

Per completare questa procedura, devi innanzitutto installare il AWS Toolkit for JetBrains e, se non l'hai ancora fatto, effettuare la prima connessione a un account AWS. Quindi, con IntelliJ IDEA, PyCharm, WebStorm o JetBrains Rider già in esecuzione, esegui le seguenti operazioni.

1. Aprire AWS Explorer, se non è già aperto. Se devi passare alla regione AWS che contiene la funzione, esegui subito l'operazione.

1. Espandi **Lambda** e verifica che il nome della funzione sia elencato. Se è presente, passare alla fase 3 in questa procedura.

   Se il nome della funzione non è elencato, crea la funzione Lambda che desideri eseguire (richiamare). 

   Se la funzione è stata creata come parte di un'applicazione serverless AWS, è necessario implementare tale applicazione.

   Se la funzione è stata creata con un file di codice che implementa un gestore di funzioni per [Java](https://docs.aws.amazon.com/lambda/latest/dg/java-programming-model-handler-types.html), [Python](https://docs.aws.amazon.com/lambda/latest/dg/python-programming-model-handler-types.html), [Node.js](https://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-handler.html) oppure [C\$1](https://docs.aws.amazon.com/lambda/latest/dg/dotnet-programming-model-handler-types.html), nel file di codice scegli l'icona Lambda accanto al gestore di funzioni. Quindi, scegli **Crea nuovo AWS Lambda**. Completare le operazioni nella finestra di dialogo [Create Function (Crea funzione)](create-function-dialog.md) e quindi scegliere **Create Function (Crea funzione)**.

1. Con il menu **Lambda** aperto su **Esploratore AWS**, fai clic con il pulsante destro del mouse sul nome della funzione, quindi scegli **Esegui '[Remoto]'**.  
![\[Esecuzione della versione remota di una funzione Lambda partendo dall'Esploratore AWS\]](http://docs.aws.amazon.com/it_it/toolkit-for-jetbrains/latest/userguide/images/lambda-remote.png)

1. Completa le operazioni nella finestra di dialogo [Modifica configurazione (impostazioni della funzione remota)](run-debug-configurations-dialog-remote.md) se visualizzata, quindi scegli **Esegui** o **Debug**. I risultati vengono visualizzati nella finestra dello strumento **Run (Esegui)** o **Debug**.
   + Se la finestra di dialogo **Modifica configurazione** non viene visualizzata e desideri modificare la configurazione esistente, prima modifica la configurazione e quindi ripeti questa procedura dall'inizio. 
   + Se i dettagli di configurazione sono mancanti, espandere **Templates (Modelli)**, **AWS Lambda** e scegliere **Local (Locale)**. Scegli **OK**, quindi ripeti questa procedura dall'inizio. 

# Modifica (aggiornamento) delle impostazioni della funzione AWS Lambda tramite il AWS Toolkit for JetBrains
<a name="lambda-update"></a>

Per utilizzare AWS Toolkit for JetBrains per modificare (aggiornare) le impostazioni di una funzione AWS Lambda, effettua una delle seguenti operazioni.
+ Con il file di codice aperto contenente il gestore di funzioni per [Java](https://docs.aws.amazon.com/lambda/latest/dg/java-programming-model-handler-types.html), [Python](https://docs.aws.amazon.com/lambda/latest/dg/python-programming-model-handler-types.html), [Node.js](https://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-handler.html) o [C\$1](https://docs.aws.amazon.com/lambda/latest/dg/dotnet-programming-model-handler-types.html), scegliere nel menu principale **Run (Esegui)**, **Edit Configurations (Modifica configurazioni)**. Completare le operazioni nella finestra di dialogo [Run/Debug Configurations (Esegui/Modifica configurazioni)](run-debug-configurations-dialog.md) e scegliere **OK**.
+ Aprire AWS Explorer, se non è già aperto. Se devi passare alla regione AWS che contiene la funzione, esegui subito l'operazione. Espandi **Lambda**, scegli il nome della funzione per cui modificare la configurazione e quindi effettua una delle seguenti operazioni:
  + **Modifica impostazioni come il timeout, la memoria, le variabili di ambiente e il ruolo di esecuzione:** fai clic con il pulsante destro del mouse sul nome della funzione, quindi scegli **Aggiorna la configurazione della funzione**.  
![\[Scelta del comando Update Function Configuration (Aggiorna configurazione funzione)\]](http://docs.aws.amazon.com/it_it/toolkit-for-jetbrains/latest/userguide/images/update-function-configuration.png)

    Completare le operazioni nella finestra di dialogo [Update Configuration (Aggiorna configurazione)](update-configuration-dialog.md) e scegliere **Update (Aggiorna)**. 
  + **Modifica le impostazioni come il payload di input**: nel menu principale, scegli **Esegui**, **Modifica configurazioni**. Completare le operazioni nella finestra di dialogo [Run/Debug Configurations (Esegui/Modifica configurazioni)](run-debug-configurations-dialog.md) e scegliere **OK**.  
![\[Scelta del comando Edit Configurations (Modifica configurazioni)\]](http://docs.aws.amazon.com/it_it/toolkit-for-jetbrains/latest/userguide/images/edit-configurations.png)

    Se mancano i dettagli di configurazione, espandere **Templates (Modelli)**, **AWS Lambda** e scegliere **Local (Locale)** (per la versione locale della funzione) o **Remote (Remoto)** (per la versione in remoto della stessa funzione). Scegliere **OK**, quindi ripetere questa procedura dall'inizio.
  + **Modifica le impostazioni, ad esempio il nome del gestore di funzioni o il bucket di origine Amazon Simple Storage Service (Amazon S3)**: fai clic con il pulsante destro del mouse sul nome della funzione e quindi scegli **Aggiorna codice funzione**.  
![\[Scelta del comando Update Function Code (Aggiorna codice funzione)\]](http://docs.aws.amazon.com/it_it/toolkit-for-jetbrains/latest/userguide/images/update-function-code.png)

    Completare la finestra di dialogo [Update Code (Aggiorna codice)](update-code-dialog.md) e quindi scegliere **Update (Aggiorna)**.
  + **Modifica le altre impostazioni di proprietà disponibili che non sono elencate nei punti precedenti**: modifica tali impostazioni nel file di modello AWS SAM corrispondente della funzione (ad esempio, in un file denominato `template.yaml` nel progetto). 

    Per l'elenco delle impostazioni di proprietà disponibili, consulta [AWS::Serverless::Function](https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction) nel repository [awslabs/serverless-application-model](https://github.com/awslabs/serverless-application-model/) su GitHub. 

# Eliminazione di una funzione AWS Lambda tramite il AWS Toolkit for JetBrains
<a name="lambda-delete"></a>

È possibile utilizzare Kit di strumenti AWS per eliminare una funzione AWS Lambda che fa parte di un'applicazione serverless AWS oppure una funzione Lambda standalone.

Per eliminare una funzione Lambda che fa parte di un'applicazione serverless AWS, ignora il resto di questo argomento e consulta la pagina [Eliminazione di un'applicazione](sam-delete.md).

Per eliminare una funzione Lambda standalone, effettua le seguenti operazioni.

1. Aprire AWS Explorer, se non è già aperto. Se devi passare alla regione AWS che contiene la funzione, esegui subito l'operazione.

1. Espandi **Lambda**.

1. Fare clic con il pulsante destro del mouse sul nome della funzione da eliminare, quindi scegliere **Delete Function (Elimina funzione)**.  
![\[Scelta del comando Delete Function (Elimina funzione)\]](http://docs.aws.amazon.com/it_it/toolkit-for-jetbrains/latest/userguide/images/lambda-delete.png)

1. Immettere il nome della funzione per confermare l'eliminazione, quindi scegliere **OK**. Se l'eliminazione della funzione ha esito positivo, AWS Toolkit for JetBrains rimuove il nome della funzione dall'elenco **Lambda**.