

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

# Esegui il debug della tua applicazione serverless con AWS SAM
<a name="debug-application"></a>

Dopo aver testato l'applicazione, sarete pronti a eseguire il debug di eventuali problemi riscontrati. Con l'interfaccia a riga di AWS SAM comando (CLI), puoi testare ed eseguire il debug localmente della tua applicazione serverless prima di caricarla sul Cloud. AWS Il debug dell'applicazione identifica e corregge problemi o errori nell'applicazione.

È possibile utilizzarlo AWS SAM per eseguire il debug dettagliato, ovvero un metodo per eseguire il codice una riga o un'istruzione alla volta. Quando richiami localmente una funzione Lambda in modalità debug all'interno AWS SAMCLI di, puoi quindi collegarle un debugger. Con il debugger, puoi scorrere il codice riga per riga, vedere i valori di diverse variabili e risolvere i problemi nello stesso modo in cui faresti per qualsiasi altra applicazione. Puoi verificare se l'applicazione si comporta come previsto, eseguire il debug di eventuali problemi e risolvere eventuali problemi, prima di completare le fasi di imballaggio e distribuzione dell'applicazione.

**Nota**  
Se l'applicazione include uno o più livelli, quando si esegue e si esegue il debug dell'applicazione localmente, il pacchetto layers viene scaricato e memorizzato nella cache sull'host locale. Per ulteriori informazioni, consulta [Come i livelli vengono memorizzati nella cache locale](serverless-sam-cli-layers.md#local-testing-with-layers).

**Topics**
+ [Funzioni di debug locali con AWS SAM](serverless-sam-cli-using-debugging.md)
+ [Passa più argomenti di runtime durante il debug con AWS SAM](serverless-sam-cli-using-debugging-additional-arguments.md)
+ [Convalida le tue AWS SAM applicazioni con CloudFormation Linter](validate-cfn-lint.md)

# Funzioni di debug locali con AWS SAM
<a name="serverless-sam-cli-using-debugging"></a>

È possibile utilizzare AWS SAM una varietà di AWS toolkit e debugger per testare ed eseguire il debug delle applicazioni serverless a livello locale. Il debug graduale delle funzioni Lambda consente di identificare e risolvere i problemi dell'applicazione una riga o un'istruzione alla volta nell'ambiente locale.

Alcuni dei modi in cui è possibile eseguire il debug locale graduale includono l'impostazione dei punti di interruzione, l'ispezione delle variabili e l'esecuzione del codice di funzione una riga alla volta. Il debug locale step-through restringe il ciclo di feedback, consentendoti di individuare e risolvere i problemi che potresti riscontrare nel cloud.

Puoi usare AWS Toolkit per eseguire il debug ed eseguirlo anche in modalità debug. AWS SAM Per informazioni dettagliate, consulta gli argomenti di questa sezione. 

## Utilizzo dei AWS Toolkit
<a name="serverless-sam-cli-using-aws-toolkits"></a>

AWS I toolkit sono plugin IDE (Integrated Development Environment) che offrono la possibilità di eseguire molte attività di debug comuni, come l'impostazione dei punti di interruzione, l'ispezione delle variabili e l'esecuzione del codice di funzione una riga alla volta. AWS I toolkit semplificano lo sviluppo, il debug e la distribuzione di applicazioni serverless create utilizzando. AWS SAM Offrono un'esperienza per la creazione, il test, il debug, la distribuzione e l'invocazione di funzioni Lambda integrate nel tuo IDE.

Per ulteriori informazioni sui AWS Toolkit che puoi utilizzare, consulta quanto segue: AWS SAM
+ [AWS Toolkit for Visual Studio Code](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/)
+ [AWS Cloud9](https://docs.aws.amazon.com/cloud9/latest/user-guide/)
+ [AWS Toolkit for JetBrains](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/)

Esistono diversi AWS toolkit che funzionano con diverse combinazioni e tempi di esecuzione. IDEs La tabella seguente elenca le IDE/runtime combinazioni comuni che supportano il debug dettagliato delle applicazioni: AWS SAM 


| IDE | Runtime | AWS Toolkit | Istruzioni per il debug dettagliato | 
| --- | --- | --- | --- | 
| Visual Studio Code |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/serverless-application-model/latest/developerguide/serverless-sam-cli-using-debugging.html)  | AWS Toolkit for Visual Studio Code | [Utilizzo della Guida per](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/serverless-apps.html) l'utente Applicazione Serverless AWSAWS Toolkit for Visual Studio Code   | 
| AWS Cloud9 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/serverless-application-model/latest/developerguide/serverless-sam-cli-using-debugging.html)  | AWS Cloud9, con AWS Toolkit abilitato 1 |  [Utilizzo di applicazioni AWS serverless utilizzando il AWS Toolkit](https://docs.aws.amazon.com/cloud9/latest/user-guide/serverless-apps-toolkit.html) *nella Guida per l'AWS Cloud9 utente.*  | 
| WebStorm | Node.js | AWS Toolkit for JetBrains2 |  [Esecuzione (richiamo) o debug](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/invoke-lambda.html) di una funzione locale in *AWS Toolkit for JetBrains*  | 
| PyCharm | Python | AWS Toolkit for JetBrains2 |  [Esecuzione (richiamo) o debug](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/invoke-lambda.html) di una funzione locale in *AWS Toolkit for JetBrains*  | 
| Rider | .NET | AWS Toolkit for JetBrains2 |  [Esecuzione (richiamo) o debug](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/invoke-lambda.html) di una funzione locale in *AWS Toolkit for JetBrains*  | 
| IntelliJ | Java | AWS Toolkit for JetBrains2 |  [Esecuzione (richiamo) o debug](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/invoke-lambda.html) di una funzione locale in *AWS Toolkit for JetBrains*  | 
| GoLand | Go | AWS Toolkit for JetBrains2 |  [Esecuzione (richiamo) o debug](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/invoke-lambda.html) di una funzione locale in *AWS Toolkit for JetBrains*  | 

**Note:**

1. Per poter eseguire il debug delle AWS SAM applicazioni, il Toolkit AWS Cloud9 deve essere abilitato. AWS *Per ulteriori informazioni, vedere [Enabling the AWS Toolkit nella Guida per l'](https://docs.aws.amazon.com/cloud9/latest/user-guide/toolkit-welcome.html#access-toolkit)utente.AWS Cloud9 *

1. Per utilizzare le AWS SAM applicazioni AWS Toolkit for JetBrains di debug dettagliate, è necessario innanzitutto installarle e configurarle seguendo le istruzioni disponibili in [Installazione](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/setup-toolkit.html) di. AWS Toolkit for JetBrains*AWS Toolkit for JetBrains*

## Esecuzione AWS SAM locale in modalità debug
<a name="serverless-sam-cli-running-locally"></a>

[https://pypi.org/project/ptvsd/](https://pypi.org/project/ptvsd/)

Per eseguire in modalità debug, usa i comandi o AWS SAM con l'opzione or. [sam local invoke](sam-cli-command-reference-sam-local-invoke.md) [sam local start-api](sam-cli-command-reference-sam-local-start-api.md) `--debug-port` `-d`

Esempio:

```
# Invoke a function locally in debug mode on port 5858
sam local invoke -d 5858 <function logical id>

# Start local API Gateway in debug mode on port 5858
sam local start-api -d 5858
```

**Nota**  
Se la utilizzi`sam local start-api`, l'istanza API Gateway locale espone tutte le tue funzioni Lambda. Tuttavia, poiché è possibile specificare una singola porta di debug, è possibile eseguire il debug di una sola funzione alla volta. È necessario chiamare l'API prima del collegamento alla porta AWS SAMCLI, il che consente al debugger di connettersi.

# Passa più argomenti di runtime durante il debug con AWS SAM
<a name="serverless-sam-cli-using-debugging-additional-arguments"></a>

Puoi scegliere di passare argomenti di runtime aggiuntivi AWS SAM per esaminare i problemi e risolvere le variabili in modo più efficace. In questo modo si ottengono maggiore controllo e flessibilità al processo di debug, il che può aiutarvi con configurazioni e ambienti di runtime personalizzati.

Per passare argomenti di runtime aggiuntivi durante il debug della funzione, utilizzate la variabile di ambiente. `DEBUGGER_ARGS` Questa operazione passa una stringa di argomenti direttamente al comando run che AWS SAMCLI utilizza per avviare la funzione.

Ad esempio, se vuoi caricare un debugger come i KPdb durante l'esecuzione della tua funzione Python, puoi passare quanto segue come. `DEBUGGER_ARGS: -m ikpdb --ikpdb-port=5858 --ikpdb-working-directory=/var/task/ --ikpdb-client-working-directory=/myApp --ikpdb-address=0.0.0.0` Questo caricherebbe i KPdb in fase di esecuzione con gli altri argomenti che hai specificato.

In questo caso, il tuo AWS SAMCLI comando completo sarebbe:

```
DEBUGGER_ARGS="-m ikpdb --ikpdb-port=5858 --ikpdb-working-directory=/var/task/ --ikpdb-client-working-directory=/myApp --ikpdb-address=0.0.0.0" echo {} | sam local invoke -d 5858 myFunction
```

È possibile passare argomenti del debugger alle funzioni di tutti i runtime.

# Convalida le tue AWS SAM applicazioni con CloudFormation Linter
<a name="validate-cfn-lint"></a>

 AWS CloudFormation Linter (cfn-lint) è uno strumento open source che puoi utilizzare per eseguire una convalida dettagliata dei tuoi modelli. CloudFormation CFN-lint contiene regole guidate dalle specifiche delle risorse. CloudFormation Usa cfn-lint per confrontare le tue risorse con quelle regole per ricevere messaggi dettagliati su errori, avvisi o suggerimenti informativi. In alternativa, crea le tue regole personalizzate in base alle quali convalidare. *Per saperne di più su cfn-lint, consulta [cfn-lint](https://github.com/aws-cloudformation/cfn-lint) nel repository.CloudFormation GitHub * 

 Puoi usare cfn-lint per convalidare i tuoi modelli () tramite l'interfaccia a riga di comando AWS Serverless Application Model (AWS SAM) eseguendoli con l' AWS SAM opzione.AWS SAMCLI **sam validate** **--lint** 

```
sam validate --lint
```

 Per personalizzare il comportamento di cfn-lint, come creare regole personalizzate o specificare opzioni di convalida, puoi definire un file di configurazione. Per saperne di più, consulta [Config File](https://github.com/aws-cloudformation/cfn-lint#config-file) nel repository * CloudFormation GitHub cfn-lint*. Quando esegui**sam validate --lint**, verrà applicato il comportamento cfn-lint definito nel tuo file di configurazione. 

## Esempi
<a name="validate-cfn-lint-examples"></a>

### Esegui la convalida cfn-lint su un modello AWS SAM
<a name="validate-cfn-lint-examples-example1"></a>

```
sam validate --lint --template myTemplate.yaml
```

## Ulteriori informazioni
<a name="validate-cfn-lint-learn"></a>

 Per ulteriori informazioni sul comando **sam validate**, consulta [sam validate](sam-cli-command-reference-sam-validate.md). 