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.
AWS Lambda débogage à distance
AWS Toolkit for Visual Studio Code Cela vous permet de déboguer vos AWS Lambda fonctions exécutées dans le cloud, directement dans VS Code. Le débogage à AWS Lambda distance vous permet d'inspecter les fonctions en cours d'exécution, de définir des points d'arrêt, d'examiner des variables et de procéder au débogage étape par étape sans modifier leur flux de travail de développement existant.
Les sections suivantes décrivent comment utiliser le débogage à distance Lambda dans le. AWS Toolkit for Visual Studio Code
Comment fonctionne le débogage à distance Lambda
Le AWS Toolkit permet le débogage à distance en modifiant temporairement vos fonctions Lambda avec une couche de débogage Lambda supplémentaire et en prolongeant le délai d'appel Lambda à 900 secondes. Une connexion sécurisée est établie entre votre débogueur local et l'environnement d'exécution Lambda à l'aide de Secure Tunneling. AWS IoT Cette connexion vous permet d'utiliser les points d'arrêt de votre code local pour parcourir la fonction lorsqu'elle s'exécute à distance. Une fois votre session de débogage terminée, toutes les modifications temporaires sont automatiquement rétablies dans leurs paramètres d'origine.
Démarrage
Environnements d'exécution pris en charge
Les environnements d'exécution suivants sont pris en charge par le débogage à distance Lambda.
-
Python (Amazon Linux 2023)
-
Java
-
JavaScript/Node.js (Amazon Linux 2023)
Prérequis
Avant de commencer, les conditions suivantes doivent être remplies.
-
Vous devez avoir configuré des AWS informations d'identification valides dans le AWS kit d'outils. Pour plus de détails sur l'installation du AWS kit d'outils et la configuration de vos informations d'identification, consultez la rubrique Mise en route de ce guide de l'utilisateur.
-
Une fonction Lambda a été déployée sur votre AWS compte. Pour plus de détails sur le déploiement d'une fonction Lambda, consultez la rubrique Créer votre première fonction Lambda dans le Guide du développeur. AWS Lambda
-
Vous devez disposer de la politique AWS Identity and Access Management (IAM) et des autorisations appropriées pour déboguer votre fonction. Pour plus de détails sur les autorisations Lambda, consultez la AWS Lambda rubrique relative aux politiques AWS gérées dans le Guide du AWS Lambdadéveloppeur. Voici un exemple de politique qui contient les autorisations minimales requises pour utiliser le débogage à distance Lambda dans le Toolkit. AWS
Note
Le débogage à distance est activé via AWS AWS IoT Secure Tunneling. Cela permet à votre débogueur local d'établir une connexion sécurisée avec l'environnement d'exécution Lambda.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lambda:ListFunctions", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:GetLayerVersion", "lambda:UpdateFunctionConfiguration", "lambda:InvokeFunction", "lambda:PublishVersion", "lambda:DeleteFunction", "iot:CloseTunnel", "iot:OpenTunnel", "iot:RotateTunnelAccessToken", "iot:ListTunnels" ], "Resource": "*" } ] }
Accès au débogage à distance de Lambda
Il existe deux chemins principaux pour accéder au débogage à distance Lambda dans le AWS Toolkit : l' AWS explorateur ou l'explorateur Application Builder. Depuis l' AWS explorateur, vous pouvez accéder au débogage à distance Lambda via vos nœuds. AWS Lambda Depuis l'explorateur Application Builder, vous pouvez accéder au débogage à distance Lambda via vos projets locaux. AWS SAM
Accès au débogage à distance Lambda depuis l'explorateur AWS
-
Depuis VS Code, ouvrez l'extension AWS Toolkit.
-
À partir de la AWS boîte à outils, développez l' AWS explorateur.
-
Depuis l'explorateur, développez le nœud Lambda.
-
Accédez à la fonction que vous souhaitez déboguer, puis choisissez l'icône Invoke remote dans le menu contextuel pour ouvrir l'écran de configuration de Remote Invoke.
Accès au débogage à distance Lambda depuis l'explorateur Application Builder.
-
Depuis VS Code, ouvrez l'extension AWS Toolkit.
-
À partir du AWS kit d'outils, développez l'explorateur du générateur d'applications.
-
À partir de l'explorateur, développez le
AWS SAM
projet qui contient le projet Lambda que vous souhaitez déboguer. -
Développez la
Lambda
fonction déployée que vous souhaitez déboguer. -
Accédez à la fonction Remote, puis choisissez l'icône Invoke remote dans le menu contextuel pour ouvrir l'écran de configuration de Remote Invoke.
Utilisation du débogage à distance Lambda
Les sections suivantes décrivent comment utiliser le débogage à distance Lambda dans le. AWS Toolkit for Visual Studio Code
Note
Les fonctions Lambda ont une limite de 5 couches et une limite combinée de 250 Mo pour le code de fonction et toutes les couches associées. Le débogage à distance Lambda nécessite au moins une couche libre pour s'exécuter.
Configuration d'une session de débogage
Avant de commencer, configurez votre session de débogage en suivant la procédure suivante.
-
Ouvrez le menu de configuration de l'appel à distance en exécutant la procédure Accès au débogage à distance Lambda depuis l' AWS explorateur ou la procédure Accès au débogage à distance Lambda depuis l'explorateur Application Builder, présentée dans la section précédente.
-
Dans le menu de configuration de l'appel à distance, cochez la case Débogage à distance pour afficher les propriétés de débogage à distance.
-
Spécifiez le chemin racine local vers votre fichier de gestionnaire local.
Note
Le chemin racine local est l'emplacement de votre code source qui correspond à la fonction Lambda déployée. Si vous travaillez à partir d'une fonction déployée dans l'explorateur Application Builder, votre chemin racine local est automatiquement détecté.
Si le code source n'est pas stocké localement, cliquez sur le bouton Télécharger le code à distance pour récupérer le code source de votre fonction Lambda. Cela vous ouvrira
handler file
dans l'éditeur de code VS. -
Dans la section Charge utile, spécifiez où les données de vos événements de test sont obtenues.
Définition des points d'arrêt et débogage
Définissez les points d'arrêt et commencez le débogage en suivant la procédure suivante.
-
handler file
Dans l'éditeur VS Code, cliquez dans la marge de la gouttière pour définir des points d'arrêt aux numéros de ligne où vous souhaitez suspendre le débogage. -
Lorsque vous êtes satisfait des points d'arrêt, retournez dans le menu de configuration de l'appel à distance pour vérifier que vos paramètres sont correctement configurés, puis cliquez sur le bouton d'appel à distance pour démarrer le débogage.
-
Le AWS Toolkit met à jour votre fonction Lambda avec des fonctionnalités de débogage, établit un tunnel sécurisé pour la session de débogage, appelle votre fonction avec la charge utile spécifiée, puis suspend le processus lorsqu'il atteint un point d'arrêt.
-
Lors d'une pause, utilisez le volet RUN AND DEBUG pour afficher vos VARIABLES, CALL STACK et BREAKPOINTS.
Mettre à jour et tester votre fonction
Pour modifier votre code et tester les modifications dans le cadre d'un déploiement rapide, procédez comme suit.
-
Lorsque votre session de débogage est active, apportez des modifications
handler file
dans l'éditeur VS Code. -
Enregistrez vos modifications (
Command+S on macOS
,Ctrl+S on Windows
) -
Lorsque vous y êtes invité, confirmez que vous souhaitez procéder au déploiement de vos modifications. Le AWS kit d'outils mettra à jour votre fonction Lambda avec le code modifié.
-
Poursuivez le débogage et testez vos modifications en définissant de nouveaux points d'arrêt et en sélectionnant à nouveau le bouton d'appel à distance.
Note
Vous pouvez également désélectionner l'option Attacher le débogueur dans les commandes de débogage de VS Code et choisir le bouton Remote Invoke pour exécuter votre fonction sans déboguer.
Fin d'une session de débogage
Chacune des options suivantes met fin à votre session de débogage à distance et supprime la couche de débogage de votre projet.
-
Choisissez l'option Supprimer la configuration du débogage dans l'écran de configuration de l'appel à distance.
-
Choix de l'icône de déconnexion dans les commandes de débogage de VS Code.
-
Fermer le
handler file
dans l'éditeur VS Code.
Note
Notez les informations suivantes :
La couche de débogage Lambda est automatiquement supprimée après 60 secondes d'inactivité. Le décompte commence lorsque votre dernier appel est terminé.
-
Si vous avez apporté des modifications de code à vos fonctions gérées infrastructure-as-code (AWS SAM, AWS CDK, Terraform) gérées (iAC) pendant le processus de débogage, enregistrez-les dans votre projet local et envisagez de mettre à jour votre référentiel de contrôle des sources. Les modifications non enregistrées sont remplacées lorsque votre fonction iAc est redéployée.
Si vous avez apporté des modifications temporaires uniquement à des fins de débogage, vous souhaiterez peut-être redéployer votre fonction depuis votre contrôle de source pour vous assurer qu'elle correspond à votre code de production.
Résolution des problèmes et cas d'utilisation avancés
Si votre session de débogage échoue, lancez le processus de dépannage en suivant ces étapes.
Mettez à jour le AWS kit d'outils avec la dernière version.
Actualisez la vue Web en fermant la vue Web de configuration d'appel à distance et en la rouvrant.
Redémarrez VS Code en le fermant complètement et en le rouvrant.
Ouvrez la palette de commandes VS Code et entrez la commande
AWS: Reset Lambda Remote Debugging Snapshot
, sélectionnez-la lorsqu'elle apparaît dans les résultats pour réinitialiser votre instantané de débogage à distance Lambda.Si vous ne parvenez pas à résoudre le problème, soumettez-le à la section AWS Toolkit for Visual Studio Code GitHub Problèmes
.
Cas d'utilisation avancé : configuration de signature de code
Le débogage à distance nécessite d'associer une couche de débogage à votre fonction Lambda. Si la configuration de signature de code de votre fonction est activée et appliquée, le AWS Toolkit ne peut pas associer automatiquement la couche de débogage à votre fonction.
Il existe deux options pour résoudre le problème de configuration de signature de code.
Supprimez temporairement la signature de code.
Utilisez une couche de débogage signée.
Suppression temporaire de la signature de code
Mettez à jour la configuration de signature de code en la définissantUntrustedArtifactOnDeployment : Warn
, puis réactivez-la une Enforced
fois le processus de débogage terminé.
Pour plus d'informations, consultez la UpdateCodeSigningConfigréférence dans le Guide de référence de l'AWS Lambda API.
Utilisation d'une couche de débogage signée
À partir du débogage à distance Lambda dans le AWS Toolkit, développez la section de configuration supplémentaire du débogage à distance.
Dans la section Configuration supplémentaire du débogage à distance, copiez l'ARN de votre couche de région à partir du champ Layer override.
À partir du AWS CLI, utilisez la commande suivante pour télécharger la version de la couche
aws lambda get-layer-version-by-arn --arn
, en remplaçant layer-arn par l'ARN de votre couche. Pour obtenir des instructions détaillées sur le téléchargement de la couche de débogage signée, consultez la référence get-layer-version-by-arn dans la référence des AWS CLI commandes.layer-arn
Signez la couche avec votre configuration de signature de code et publiez-la sur votre compte. Pour obtenir des conseils de signature et de publication, consultez la rubrique Configurer la signature de code pour votre AWS SAM application dans le Guide du AWS Serverless Application Model développeur.
Une fois la couche signée et publiée sur votre compte, retournez à la section Configuration supplémentaire du débogage à distance de Lambda Remote Debug, puis entrez le nouvel ARN de couche dans le champ Layer override. Lorsque le processus est terminé, le débogage à distance Lambda utilise votre couche signée au lieu de la couche par défaut.
Régions prises en charge
L'erreur suivante se produit lorsqu'une région ne prend pas en charge le débogage à distance.
Region ${region} doesn't support remote debugging yet
Voici une liste des régions prises en charge.
ap-east-1
ap-northeast-1
ap-northeast-2
ap-south-1
ap-southeast-1
ap-southeast-2
ca-central-1
eu-central-1
eu-north-1
eu-west-1
eu-west-2
eu-west-3
me-central-1
me-south-1
sa-east-1
us-east-1
us-east-2
us-west-1
us-west-2
Lambda RequestEntityTooLargeException
Les fonctions Lambda ont une limite de 5 couches et une limite combinée de 250 Mo pour le code de fonction et toutes les couches associées. La couche de débogage à distance est d'environ 40 Mo, ce qui peut faire en sorte que votre fonction dépasse cette limite si vous disposez d'un package de fonctions volumineux ou de plusieurs couches. Pour plus de détails, consultez la section Lambda : InvalidParameterValueException RequestEntityTooLargeException or du manuel du AWS Lambda développeur.
La liste suivante décrit les méthodes de résolution des problèmes et de correction de cette erreur.
Réduisez la taille de la fonction : optimisez le code de votre fonction et supprimez les dépendances inutiles.
Supprimer les couches inutilisées : supprimez temporairement les couches non essentielles pendant le débogage.
Utiliser des dépendances externes : déplacez les dépendances importantes vers un stockage externe, tel qu'Amazon S3, et chargez-les lors de l'exécution.
Dépassement du quota de tunneling sécurisé pour l'IoT
Voici un exemple de l'erreur de dépassement du quota de tunnel qui se produit lorsque vous avez atteint la limite quotidienne pour les connexions de tunneling AWS IoT sécurisées dans le cadre du débogage à distance Lambda.
Error creating/reusing tunnel: LimitExceededException: Exceeded quota of Lambda debugging tunnels
AWS IoT Les connexions Secure Tunneling ont les quotas suivants :
Le tunneling sécurisé IoT de niveau gratuit est attribué à 10 connexions par jour.
Chaque tunnel prend en charge une instance de VS Code pendant 12 heures maximum.
Le quota s'applique par AWS compte, par jour.
Si vous rencontrez une erreur de tunneling AWS IoT sécurisé, attendez la réinitialisation quotidienne du quota ou contactez l' AWS assistance pour demander une augmentation de la limite de quota. Pour obtenir les coordonnées de l' AWS assistance, consultez le portail de contact de l'AWS assistance
Débogage de fonctions TypeScript Lambda avec des cartes sources
Les sections suivantes décrivent comment déboguer vos fonctions TypeScript Lambda avec des cartes sources.
Prérequis
Pour déboguer vos fonctions TypeScript Lambda, les conditions préalables suivantes doivent être remplies.
Vous TypeScript devez être conforme à l'option de carte source activée. Pour plus d'informations, consultez la rubrique relative à la prise en charge des cartes JavaScript sources
dans la documentation de VS Code. Pour fonctionner avec des cartes sources en ligne, toutes les modifications doivent être redéployées dans le cloud.
Configuration
Pour configurer le débogage à distance Lambda pour les fonctions TypeScript Lambda dans le AWS Toolkit, procédez comme suit.
-
À partir de la AWS boîte à outils, développez l' AWS explorateur.
-
Depuis l'explorateur, développez le nœud Lambda.
-
Accédez à la fonction pour laquelle vous souhaitez effectuer la configuration TypeScript, puis choisissez l'icône Invoquer à distance dans le menu contextuel pour ouvrir l'écran de configuration de l'appel à distance.
Activez le débogage à distance en cochant la case Débogage à distance.
Configurez votre chemin racine local en pointant sur le répertoire contenant votre
TypeScript handler file
.Note
TypeScript handler file
C'est là que vous définissez vos points d'arrêt de débogage.Étendez les paramètres de configuration supplémentaires du débogage à distance.
Activez le mappage des sources en cochant la case Carte des sources.
Définissez le champ Fichiers sortants sur le répertoire local de votre copie de fonction Lambda.
Si
app.js
etapp.map
sont entrés.aws-sam/build/HelloWorldFunction
, définissez l'emplacement des fichiers de sortie/Users/
.user
/project
/aws-sam/build/HelloWorldFunction
/*Note
Le chemin du fichier de sortie doit être un chemin absolu.
Lorsque vous êtes satisfait des paramètres, cliquez sur le bouton Remote Invoke pour commencer à déboguer votre TypeScript fonction.