

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éboguer à distance des fonctions Lambda avec Visual Studio Code
<a name="debugging"></a>

Grâce à la fonction de débogage à distance intégrée à [AWS Toolkit for Visual Studio Code](https://aws.amazon.com/visualstudiocode/), vous pouvez déboguer vos fonctions Lambda exécutées directement dans le cloud AWS. Cela est utile lorsque vous étudiez des problèmes difficiles à reproduire localement ou à diagnostiquer uniquement à l’aide de journaux.

Grâce au débogage à distance, vous pouvez :
+ Définir des points d’arrêt dans le code de votre fonction Lambda.
+ Exécuter le code étape par étape en temps réel.
+ Inspecter les variables et leur état pendant l’exécution.
+ Déboguer les fonctions Lambda déployées sur AWS, y compris celles qui se trouvent dans des VPC ou avec des autorisations IAM spécifiques.

## Environnements d'exécution pris en charge
<a name="debugging-runtimes"></a>

Le débogage à distance est pris en charge pour les environnements d’exécution suivants :
+ Python (AL2023)
+ Java
+ JavaScript/Node.js (AL2023)

**Note**  
Le débogage à distance est pris en charge pour les architectures x86\$164 et arm64.

## Sécurité et débogage à distance
<a name="debugging-security"></a>

Le débogage à distance fonctionne dans les limites de sécurité Lambda existantes. Les utilisateurs peuvent associer des couches à une fonction à l’aide de l’autorisation `UpdateFunctionConfiguration`, qui permet déjà d’accéder aux variables d’environnement et à la configuration de la fonction. Le débogage à distance ne s’étend pas au-delà de ces autorisations existantes. Il ajoute plutôt des contrôles de sécurité supplémentaires grâce à un tunneling sécurisé et à une gestion automatique des sessions. En outre, le débogage à distance est une fonctionnalité entièrement contrôlée par le client nécessitant des autorisations et des actions explicites :
+ **Création d’un tunnel sécurisé IoT** : AWS Toolkit doit créer un tunnel sécurisé IoT, ce qui n’est possible qu’avec l’autorisation explicite de l’utilisateur en utilisant `iot:OpenTunnel`.
+ **Attachement de la couche de débogage et gestion des jetons** : le processus de débogage assure la sécurité via les contrôles suivants :
  + La couche de débogage doit être attachée à la fonction Lambda, et ce processus nécessite les autorisations suivantes : `lambda:UpdateFunctionConfiguration` et `lambda:GetLayerVersion`.
  + Un jeton de sécurité (généré via `iot:OpenTunnel`) doit être mis à jour dans la variable d’environnement de la fonction avant chaque session de débogage, ce qui nécessite également `lambda:UpdateFunctionConfiguration`.
  + Pour des raisons de sécurité, ce jeton est automatiquement pivoté, et la couche de débogage est automatiquement supprimée à la fin de chaque session de débogage et ne peut pas être réutilisée.

**Note**  
Le débogage à distance est pris en charge pour les architectures x86\$164 et arm64.

## Prérequis
<a name="debugging-prerequisites"></a>

Avant de commencer le débogage à distance, vérifiez que vous disposez des éléments suivants :

1. Une fonction Lambda déployée sur votre compte AWS.

1. AWS Toolkit for Visual Studio Code. Consultez [Configuration d’AWS Toolkit for Visual Studio Code](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/setup-toolkit.html) pour les instructions d’installation.

1. La version d’AWS Toolkit que vous avez installée est la version **3.69.0** ou une version ultérieure.

1. Informations d’identification AWS configurées dans AWS Toolkit for Visual Studio Code. Pour de plus amples informations, consultez [Authentification et contrôle d’accès](foundation-iac-local-development.md#lambda-functions-vscode-authentication-and-access-control).

## Débogage à distance de fonctions Lambda
<a name="debugging-procedure"></a>

Pour démarrer une session de débogage à distance, procédez comme suit :

1. Ouvrez l’explorateur AWS dans VS Code en sélectionnant l’icône AWS dans la barre latérale gauche.

1. Développez la section Lambda pour voir vos fonctions.

1. Cliquez sur la fonction que vous souhaitez déboguer avec le bouton droit de la souris.

1. Dans le menu contextuel, sélectionnez **Invoquer à distance**.

1. Dans la fenêtre d’invocation qui s’ouvre, cochez la case **Activer le débogage**.

1. Cliquez sur **Invoquer** pour démarrer la session de débogage à distance.

**Note**  
Les fonctions Lambda ont une limite combinée de 250 Mo pour le code de fonction et toutes les couches associées. La couche de débogage à distance ajoute environ 40 Mo à la taille de votre fonction.

Une session de débogage à distance se termine quand vous :
+ Choisissez **Supprimer la configuration de débogage** sur l’écran de configuration de l’invocation à distance.
+ Sélectionnez l’icône de déconnexion dans les commandes de débogage de VS Code.
+ Sélectionnez le fichier de gestionnaire dans l’éditeur VS Code.

**Note**  
La couche de débogage est automatiquement supprimée après 60 secondes d’inactivité après votre dernière invocation.

## Désactiver le débogage à distance
<a name="debugging-disable"></a>

Vous pouvez désactiver cette fonctionnalité de trois manières :
+ **Refuser les mises à jour de fonction** : définissez `lambda:UpdateFunctionConfiguration` sur `deny`.
+ **Restreindre les autorisations IoT** : refusez les autorisations IoT
+ **Bloquer les couches de débogage** : refusez `lambda:GetLayerVersion` pour les ARN suivants :
  + `arn:aws:lambda:*:*:layer:LDKLayerX86:*`
  + `arn:aws:lambda:*:*:layer:LDKLayerArm64:*`
**Note**  
La désactivation de cette fonctionnalité empêche l’ajout de la couche de débogage lors des mises à jour de configuration des fonctions.

## Informations supplémentaires
<a name="debugging-related-info"></a>

Pour plus d’informations sur l’utilisation de Lambda dans VS Code, reportez-vous à la section [Développement de fonctions Lambda localement avec VS Code](foundation-iac-local-development.md).

Pour obtenir des instructions détaillées sur le dépannage, les cas d’utilisation avancés et la disponibilité régionale, consultez [Débogage à distance des fonctions Lambda](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/lambda-remote-debug.html) dans le Guide de l’utilisateur AWS Toolkit for Visual Studio Code.