

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Déboguez votre application sans serveur avec AWS SAM
<a name="debug-application"></a>

Après avoir testé votre application, vous serez prêt à corriger tous les problèmes que vous aurez découverts. Grâce à l'interface de ligne de AWS SAM commande (CLI), vous pouvez tester et déboguer localement votre application sans serveur avant de la télécharger dans le Cloud. AWS Le débogage de votre application identifie et corrige les problèmes ou les erreurs de votre application.

Vous pouvez l'utiliser AWS SAM pour effectuer un débogage étape par étape, qui consiste à exécuter du code une ligne ou une instruction à la fois. Lorsque vous invoquez localement une fonction Lambda en mode de débogage dans le AWS SAMCLI, vous pouvez alors y associer un débogueur. Avec le débogueur, vous pouvez parcourir votre code ligne par ligne, voir les valeurs des différentes variables et résoudre les problèmes de la même manière que vous le feriez pour n'importe quelle autre application. Vous pouvez vérifier si votre application se comporte comme prévu, déboguer ce qui ne va pas et résoudre les problèmes, avant de passer par les étapes d'empaquetage et de déploiement de votre application.

**Note**  
Si votre application comprend une ou plusieurs couches, lorsque vous exécutez et déboguez localement votre application, le package de couches est téléchargé et mis en cache sur votre hôte local. Pour plus d'informations, consultez [Comment les couches sont mises en cache localement](serverless-sam-cli-layers.md#local-testing-with-layers).

**Topics**
+ [Fonctions de débogage locales avec AWS SAM](serverless-sam-cli-using-debugging.md)
+ [Passez plusieurs arguments d'exécution lors du débogage avec AWS SAM](serverless-sam-cli-using-debugging-additional-arguments.md)
+ [Validez vos AWS SAM applications avec CloudFormation Linter](validate-cfn-lint.md)

# Fonctions de débogage locales avec AWS SAM
<a name="serverless-sam-cli-using-debugging"></a>

Vous pouvez utiliser AWS SAM une variété de AWS boîtes à outils et de débogueurs pour tester et déboguer vos applications sans serveur localement. Le débogage progressif de vos fonctions Lambda vous permet d'identifier et de résoudre les problèmes de votre application, ligne par ligne ou instruction, dans votre environnement local.

Vous pouvez notamment effectuer un débogage étape par étape local en définissant des points d'arrêt, en inspectant des variables et en exécutant le code de fonction ligne par ligne. Le débogage par étapes local renforce la boucle de rétroaction, ce qui vous permet de trouver et de résoudre les problèmes que vous pourriez rencontrer dans le cloud.

Vous pouvez utiliser des AWS boîtes à outils pour déboguer, et vous pouvez également exécuter AWS SAM en mode débogage. Consultez les rubriques de cette section pour plus de détails. 

## Utilisation de AWS boîtes à outils
<a name="serverless-sam-cli-using-aws-toolkits"></a>

AWS Les toolkits sont des plugins d'environnement de développement intégré (IDE) qui vous permettent d'effectuer de nombreuses tâches de débogage courantes, telles que la définition de points d'arrêt, l'inspection de variables et l'exécution de code de fonction ligne par ligne. AWS Les boîtes à outils facilitent le développement, le débogage et le déploiement d'applications sans serveur conçues à l'aide de. AWS SAM Elles offrent une expérience de création, de test, de débogage, de déploiement et d'appel de fonctions Lambda qui sont intégrées à votre IDE.

Pour plus d'informations sur les AWS boîtes à outils que vous pouvez utiliser avec AWS SAM, consultez les rubriques suivantes :
+ [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/)

Il existe une variété de AWS boîtes à outils qui fonctionnent avec différentes combinaisons IDEs et environnements d'exécution. Le tableau suivant répertorie les IDE/runtime combinaisons courantes qui prennent en charge le débogage progressif des AWS SAM applications :


| IDE | Exécution | AWS Boîte à outils | Instructions pour le débogage par étapes | 
| --- | --- | --- | --- | 
| Code Visual Studio |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/serverless-application-model/latest/developerguide/serverless-sam-cli-using-debugging.html)  | AWS Toolkit for Visual Studio Code | [Utilisation de l'éditeur de balises Application sans serveur AWS](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/serverless-apps.html) dans le Guide de l'utilisateur AWS Toolkit for Visual Studio Code   | 
| AWS Cloud9 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/serverless-application-model/latest/developerguide/serverless-sam-cli-using-debugging.html)  | AWS Cloud9, avec AWS Toolkit activé 1 |  [Utilisation d'applications AWS sans serveur à l'aide du AWS kit d'outils figurant](https://docs.aws.amazon.com/cloud9/latest/user-guide/serverless-apps-toolkit.html) dans le *guide de AWS Cloud9 l'utilisateur*.  | 
| WebStorm | Node.js | AWS Toolkit for JetBrains2 |  [Exécution (appel) ou débogage d'une fonction locale](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/invoke-lambda.html) dans la *AWS Toolkit for JetBrains*  | 
| PyCharm | Python | AWS Toolkit for JetBrains2 |  [Exécution (appel) ou débogage d'une fonction locale](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/invoke-lambda.html) dans la *AWS Toolkit for JetBrains*  | 
| Rider | .NET | AWS Toolkit for JetBrains2 |  [Exécution (appel) ou débogage d'une fonction locale](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/invoke-lambda.html) dans la *AWS Toolkit for JetBrains*  | 
| IntelliJ | Java | AWS Toolkit for JetBrains2 |  [Exécution (appel) ou débogage d'une fonction locale](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/invoke-lambda.html) dans la *AWS Toolkit for JetBrains*  | 
| GoLand | Go | AWS Toolkit for JetBrains2 |  [Exécution (appel) ou débogage d'une fonction locale](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/invoke-lambda.html) dans la *AWS Toolkit for JetBrains*  | 

**Remarques** :

1. Pour être utilisé AWS Cloud9 pour déboguer des AWS SAM applications étape par étape, le AWS Toolkit doit être activé. Pour plus d'informations, consultez la section [Activation du AWS kit d'outils](https://docs.aws.amazon.com/cloud9/latest/user-guide/toolkit-welcome.html#access-toolkit) dans le *guide de AWS Cloud9 l'utilisateur*.

1. Pour utiliser les AWS SAM applications AWS Toolkit for JetBrains de débogage étape par étape, vous devez d'abord les installer et les configurer en suivant les instructions de la section [Installation du AWS Toolkit for JetBrains](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/setup-toolkit.html). *AWS Toolkit for JetBrains*

## Exécution AWS SAM locale en mode debug
<a name="serverless-sam-cli-running-locally"></a>

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

Pour exécuter AWS SAM en mode débogage, utilisez des commandes [sam local invoke](sam-cli-command-reference-sam-local-invoke.md) ou utilisez [sam local start-api](sam-cli-command-reference-sam-local-start-api.md) l'`-d`option `--debug-port` ou.

Par exemple :

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

**Note**  
Si vous utilisez `sam local start-api`, l'instance API Gateway locale expose la totalité de vos fonctions Lambda. Mais, du fait vous ne pouvez spécifier qu'un seul port de débogage, vous ne pouvez déboguer qu'une seule fonction à la fois. Vous devez appeler votre API avant que la CLI  AWS SAM se lie au port, ce qui permet au débogueur de se connecter.

# Passez plusieurs arguments d'exécution lors du débogage avec AWS SAM
<a name="serverless-sam-cli-using-debugging-additional-arguments"></a>

Vous pouvez choisir de transmettre des arguments d'exécution supplémentaires AWS SAM pour inspecter les problèmes et résoudre les variables de manière plus efficace. Cela permet de renforcer le contrôle et la flexibilité de votre processus de débogage, ce qui peut vous aider à personnaliser les configurations d'exécution et les environnements d'exécution.

Pour transmettre des arguments d'exécution supplémentaires lorsque vous déboguez votre fonction, utilisez la variable d'environnement `DEBUGGER_ARGS`. Cela transmet une chaîne d'arguments directement dans la Run Command que la CLI  AWS SAM utilise pour démarrer votre fonction.

Par exemple, si vous souhaitez charger un débogueur tel que i KPdb au moment de l'exécution de votre fonction Python, vous pouvez passer ce qui suit sous la forme. `DEBUGGER_ARGS: -m ikpdb --ikpdb-port=5858 --ikpdb-working-directory=/var/task/ --ikpdb-client-working-directory=/myApp --ikpdb-address=0.0.0.0` Cela le chargerait KPdb au moment de l'exécution avec les autres arguments que vous avez spécifiés.

Dans ce cas, la totalité de votre commande CLI  AWS SAM serait :

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

Vous pouvez transmettre des arguments de débogueur aux fonctions de toutes les exécutions.

# Validez vos AWS SAM applications avec CloudFormation Linter
<a name="validate-cfn-lint"></a>

 AWS CloudFormation Linter (cfn-lint) est un outil open source que vous pouvez utiliser pour effectuer une validation détaillée de vos modèles. CloudFormation CFN-Lint contient des règles guidées par la spécification de la CloudFormation ressource. Utilisez cfn-lint pour comparer vos ressources à ces règles afin de recevoir des messages détaillés sur les erreurs, les avertissements ou des suggestions informatives. Vous pouvez également créer vos propres règles personnalisées à des fins de validation. *Pour en savoir plus sur cfn-lint, consultez [cfn-lint](https://github.com/aws-cloudformation/cfn-lint) dans le dépôt.CloudFormation GitHub * 

 Vous pouvez utiliser cfn-lint pour valider vos modèles AWS Serverless Application Model (AWS SAM) via l'interface de ligne de AWS SAM commande (AWS SAMCLI) en exécutant **sam validate** l'option. **--lint** 

```
sam validate --lint
```

 Pour personnaliser le comportement de cfn-lint, par exemple en créant des règles personnalisées ou en spécifiant des options de validation, vous pouvez définir un fichier de configuration. Pour en savoir plus, consultez la section [Fichier de configuration](https://github.com/aws-cloudformation/cfn-lint#config-file) dans le dépôt *cfn-lint CloudFormation GitHub *. Lorsque vous exécutez **sam validate --lint**, le comportement de cfn-lint défini dans votre fichier de configuration sera appliqué. 

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

### Effectuer la validation cfn-lint sur un modèle AWS SAM
<a name="validate-cfn-lint-examples-example1"></a>

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

## En savoir plus
<a name="validate-cfn-lint-learn"></a>

 Pour en savoir plus sur la commande **sam validate**, consultez [sam validate](sam-cli-command-reference-sam-validate.md). 