

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 Fonctions
<a name="building-lambda"></a>

 AWS Toolkit for Visual Studio Code Il fournit un support complet pour les AWS Lambda fonctions, vous permettant de créer, de tester et de déployer directement à partir de VS Code.

Lambda est un service de calcul entièrement géré et piloté par les événements qui exécute automatiquement votre code en réponse aux événements provenant de plus de 200 services AWS et applications ( software-as-a-serviceSaaS). Pour obtenir des informations détaillées sur le AWS Lambda service, consultez le guide du [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)développeur.

Les rubriques suivantes décrivent comment travailler avec AWS Lambda . AWS Toolkit for Visual Studio Code

**Topics**
+ [Utilisation des AWS Lambda fonctions](remote-lambda.md)
+ [AWS Lambda console vers IDE](lambda-console-ide.md)
+ [AWS Lambda avec LocalStack support](lambda-localstack.md)
+ [AWS Lambda débogage à distance](lambda-remote-debug.md)

# Utilisation des AWS Lambda fonctions
<a name="remote-lambda"></a>

 AWS Toolkit for Visual Studio Code Cela vous permet de travailler avec vos AWS Lambda fonctions dans votre environnement VS Code local. Avec le AWS Toolkit, vous pouvez créer, modifier, tester, déboguer et déployer vos fonctions Lambda, sans avoir à quitter l'IDE. Pour obtenir des informations détaillées sur le AWS Lambda service, consultez le guide du [AWS Lambda](https://docs.aws.amazon.com//lambda/latest/dg/welcome.html)développeur.

Les sections suivantes décrivent comment commencer à utiliser les fonctions Lambda dans le. AWS Toolkit for Visual Studio Code

**Note**  
Si vous avez déjà créé des fonctions Lambda à l'aide de AWS Management Console, vous pouvez les invoquer depuis le Toolkit. De plus, vous pouvez ouvrir vos fonctions Lambda dans VS Code à partir du AWS Lambda console, pour plus d'informations, voir la [AWS Lambda console vers IDE](lambda-console-ide.md) rubrique de ce guide de l'utilisateur. Pour créer une nouvelle fonction Lambda dans VS Code, suivez les étapes décrites dans la rubrique [Création d'une nouvelle application sans serveur (locale)](https://docs.aws.amazon.com//toolkit-for-vscode/latest/userguide/sam-get-started.html#serverless-apps-create) de ce guide de l'utilisateur.

## Conditions préalables
<a name="remote-lambda-prereq"></a>

Les conditions suivantes doivent être remplies pour utiliser le AWS Lambda service dans le AWS kit d'outils.
+ La dernière version du AWS Toolkit for Visual Studio Code est installée et configurée avec vos AWS informations d'identification.
+ Vos autorisations et politiques gérées Gestion des identités et des accès AWS (IAM) sont configurées pour fonctionner avec le AWS Lambda service. Pour obtenir des informations détaillées sur la façon de configurer vos autorisations et de créer une politique AWS gérée compatible, consultez [Gestion des identités et des accès AWS la AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/security-iam.html) rubrique correspondante du *Guide du AWS Lambda développeur*.
+ Vous avez des AWS Lambda fonctions existantes ou vous savez comment en créer une. *Pour obtenir des instructions sur la création d'une fonction Lambda, consultez la rubrique [Création de votre première fonction Lambda](https://docs.aws.amazon.com/lambda/latest/dg/getting-started.html) dans le Guide du développeur.AWS Lambda *

## Invocation d'une fonction Lambda
<a name="invoke-lam-func"></a>

Pour appeler une fonction Lambda depuis votre AWS compte dans VS Code, procédez comme suit.

1. À partir de AWS Toolkit for Visual Studio Code, développez l' AWS explorateur.

1. Dans l' AWS explorateur, développez **Lambda** pour afficher vos ressources Lambda.

1. Ouvrez le menu contextuel pour (cliquez avec le bouton droit) sur la fonction Lambda que vous souhaitez invoquer, puis choisissez **Invoke dans le cloud** ou choisissez l'icône **Invoke dans le cloud** pour ouvrir le menu de **configuration de l'appel à distance** dans VS Code.

1. Dans le menu de **configuration de l'appel à distance**, spécifiez vos paramètres de **charge utile** et ajoutez toute information supplémentaire requise pour l'événement.
**Note**  
Le premier processus d'appel peut commencer à s'exécuter dès que vous choisissez **Invoke dans le cloud** dans l' AWS explorateur. La sortie est affichée dans l'onglet **OUTPUT** du terminal VS Code.

1. Cliquez sur le bouton **Remote** Invoke pour appeler votre fonction. La sortie est affichée dans l'onglet **OUTPUT** du terminal VS Code.

## Suppression d'une fonction Lambda
<a name="delete-lambda"></a>

Pour supprimer une fonction Lambda, procédez comme suit.

**Avertissement**  
N'utilisez pas cette procédure pour supprimer les fonctions Lambda qui sont associées à [CloudFormation](https://docs.aws.amazon.com/cloudformation/). Ces fonctions doivent être supprimées de votre CloudFormation pile.

1. À partir de AWS Toolkit for Visual Studio Code, développez l' AWS explorateur.

1. Dans l' AWS explorateur, développez **Lambda** pour afficher vos ressources Lambda.

1. **Cliquez avec le bouton droit sur la fonction Lambda que vous souhaitez supprimer, puis choisissez Supprimer.**

1. Lorsque vous y êtes invité, confirmez que vous souhaitez supprimer votre fonction.

Une fois la fonction supprimée, elle n'est plus répertoriée dans l' AWS explorateur.

## Téléchargement d'une fonction Lambda
<a name="import-lambda"></a>

Vous pouvez télécharger le code d'une fonction Lambda distante dans votre espace de travail VS Code pour le modifier et le déboguer.

**Note**  
Pour télécharger votre fonction Lambda, vous devez travailler dans un espace de travail VS Code avec un dossier accessible et le AWS Toolkit ne prend en charge cette fonctionnalité qu'avec les fonctions Lambda utilisant Node.js et les environnements d'exécution Python.

1. À partir de AWS Toolkit for Visual Studio Code, développez l' AWS explorateur.

1. Dans l' AWS explorateur, développez **Lambda** pour afficher vos ressources Lambda.

1. **Cliquez avec le bouton droit sur la fonction Lambda que vous souhaitez télécharger, puis sélectionnez Télécharger.**

1. Votre fonction Lambda s'ouvre dans l'éditeur VS Code et s'affiche dans l' AWS explorateur une fois le téléchargement terminé. Le AWS Toolkit crée également une *configuration de lancement* dans le panneau d'exécution de VS Code vous permettant d'exécuter et de déboguer la fonction Lambda localement avec. AWS Serverless Application Model Pour plus d'informations sur l'utilisation AWS SAM, consultez[Exécution et débogage d'une application sans serveur à partir d'un modèle (local)](sam-get-started.md#serverless-apps-debug). 

## Déploiement de mises à jour pour les nouvelles fonctions Lambda
<a name="deploy-lambda"></a>

Vous pouvez déployer des mises à jour des nouvelles fonctions Lambda à partir d'un emplacement temporaire non spécifié sur votre machine locale.

**Note**  
Lorsque des modifications non déployées sont apportées à vos fichiers lambda, vous êtes averti par l'icône **M** située à côté des fichiers modifiés dans l'éditeur VS Code et dans l' AWS explorateur.

**Déploiement depuis l'éditeur VS Code**

1. Ouvrez un fichier à partir de votre fonction Lambda dans l'éditeur VS Code, puis modifiez le fichier.

1. Enregistrez manuellement depuis le menu principal de VS Code ou en appuyant sur **option\$1s** (Mac) **ctrl\$1s** (Windows).

1. VS Code vous invite automatiquement à déployer vos modifications dans le cloud. Cliquez sur le bouton **Déployer** pour confirmer le déploiement.

1. VS Code vous informe de l'état de votre déploiement et vous avertit lorsque le processus est terminé.

**Déploiement depuis l' AWS explorateur**

1. Ouvrez un fichier à partir de votre fonction Lambda dans l'éditeur VS Code, puis modifiez le fichier.

1. À partir de la AWS boîte à outils, développez l' AWS explorateur.

1. Dans l' AWS explorateur, étendez la AWS région avec la fonction Lambda pour laquelle vous souhaitez déployer des modifications.

1. Depuis la AWS région, développez Lambda et parcourez la fonction pour laquelle vous souhaitez déployer des modifications.

1. Dans le menu rapide situé à côté de votre fonction, choisissez l'icône **Enregistrer et déployer votre code**.

1. VS Code vous informe de l'état de votre déploiement et vous avertit lorsque le processus est terminé.

## Téléchargement de mises à jour pour les fonctions Lambda existantes
<a name="upload-lambda"></a>

Les procédures suivantes décrivent comment télécharger les modifications locales apportées à vos fonctions Lambda existantes. Cette fonctionnalité prend en charge les téléchargements avec n'importe quel environnement d'exécution compatible Lambda.

**Avertissement**  
Avant de télécharger votre fonction lambda, tenez compte des points suivants :  
La mise à jour du code de cette manière n'utilise pas la AWS SAM CLI pour le déploiement ou la création d'une CloudFormation pile
Le AWS kit d'outils ne valide pas le code. Validez votre code et testez vos fonctions avant de télécharger les modifications dans le cloud. 

**Téléchargement d'une archive Zip**

1. À partir de AWS Toolkit for Visual Studio Code, développez l' AWS explorateur.

1. Dans l' AWS explorateur, développez **Lambda** pour afficher vos ressources Lambda.

1. Cliquez avec le bouton droit sur la fonction Lambda vers laquelle vous souhaitez télécharger vos modifications, puis choisissez Upload **Lambda...** pour ouvrir le menu **Sélectionner le type de téléchargement**.

1. Choisissez **Archive ZIP** pour les localiser `ZIP Archive` dans votre répertoire local.

1. Lorsque vous y êtes invité, confirmez le téléchargement pour démarrer le téléchargement du fichier sélectionné`ZIP Archive`.

1. L'état de votre téléchargement est affiché dans VS Code et vous êtes averti lorsque le processus de téléchargement est terminé.

**Télécharger un répertoire sans le créer**

1. À partir de AWS Toolkit for Visual Studio Code, développez l' AWS explorateur.

1. Dans l' AWS explorateur, développez **Lambda** pour afficher vos ressources Lambda.

1. Cliquez avec le bouton droit sur la fonction Lambda vers laquelle vous souhaitez télécharger vos modifications, puis choisissez Upload **Lambda...** pour ouvrir le menu **Sélectionner le type de téléchargement**.

1. Choisissez **Directory** pour passer à l'écran **Build directory**.

1. Dans l'écran **Créer un répertoire**, choisissez **Non** pour choisir un répertoire local à télécharger.

1. Lorsque vous y êtes invité, confirmez le téléchargement pour télécharger le répertoire sélectionné.

1. L'état de votre téléchargement est affiché dans VS Code et vous êtes averti lorsque le processus de téléchargement est terminé.

**Téléchargement d'un répertoire avec un build**
**Note**  
Tenez compte des points suivants :  
Cette procédure nécessite la AWS Serverless Application Model CLI.
Le AWS Toolkit vous indique qu'aucun gestionnaire correspondant ne peut être détecté avant le téléchargement.
Pour modifier le gestionnaire associé à votre fonction Lambda, utilisez AWS Lambda console le ou le. AWS Command Line Interface

1. À partir de AWS Toolkit for Visual Studio Code, développez l' AWS explorateur.

1. Dans l' AWS explorateur, développez **Lambda** pour afficher vos ressources Lambda.

1. Cliquez avec le bouton droit sur la fonction Lambda vers laquelle vous souhaitez télécharger vos modifications, puis choisissez Upload **Lambda...** pour ouvrir le menu **Sélectionner le type de téléchargement**.

1. Choisissez **Directory** pour passer à l'écran **Build directory**.

1. Dans l'écran **Créer un répertoire**, choisissez **Oui**, puis sélectionnez un répertoire local pour le téléchargement.

1. Lorsque vous y êtes invité, confirmez le téléchargement pour commencer à créer et à télécharger le répertoire sélectionné.

1. L'état de votre téléchargement est affiché dans VS Code et vous êtes averti lorsque le processus de téléchargement est terminé.

## Conversion de votre fonction Lambda en projet AWS SAM
<a name="lambda-sam"></a>

Pour convertir votre fonction Lambda en AWS SAM pile, procédez comme suit.

**Avertissement**  
Actuellement, seul un sous-ensemble de ressources est pris en charge lors de la conversion d'une fonction Lambda en AWS SAM projet. Pour localiser les ressources manquantes après une conversion, consultez la console Lambda et ajoutez-les manuellement à votre AWS SAM modèle. Pour plus de détails sur les ressources prises en charge et non prises en charge, consultez la rubrique relative à la prise en [charge des types de ressources](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html) dans le *Guide du AWS CloudFormation développeur*.

1. À partir de la AWS boîte à outils, développez l' AWS explorateur.

1. Dans l' AWS explorateur, étendez la AWS région à l'aide de la fonction Lambda que vous souhaitez convertir en AWS SAM projet.

1. Depuis la AWS région, développez Lambda et parcourez la fonction que vous souhaitez convertir en AWS SAM pile.

1. Dans le menu rapide situé à côté de votre fonction Lambda, cliquez sur l'icône **Convertir en application SAM pour** parcourir votre système de fichiers local et spécifier un emplacement pour votre nouveau AWS SAM projet.

1. Après avoir spécifié un emplacement, le AWS Toolkit commence à convertir votre fonction Lambda en AWS SAM projet, VS Code fournit des mises à jour sur l'état du processus.
**Note**  
Ce processus peut prendre quelques minutes.

1. Lorsque VS Code vous y invite, entrez un nom de pile, puis appuyez sur la **Enter** touche pour continuer.

1. VS Code continue de vous informer de l'état de votre projet, puis vous avertit lorsque le processus est terminé et ouvre votre nouveau AWS SAM projet en tant qu'espace de travail VS Code.

# AWS Lambda console vers IDE
<a name="lambda-console-ide"></a>

La fonctionnalité AWS Lambda console vers l'IDE vous permet de télécharger vos AWS Lambda fonctions depuis VS Code. AWS Lambda console L'utilisation de vos fonctions Lambda dans VS Code vous donne accès à d'autres options de développement local telles que AWS Serverless Application Model ()AWS SAM et le. AWS Cloud Development Kit (AWS CDK)

Pour plus d'informations AWS Lambda, consultez le guide du [AWS Lambda](https://docs.aws.amazon.com//lambda/latest/dg/welcome.html)développeur. Pour commencer à utiliser votre fonction Lambda dans le AWS kit d'outils, consultez la rubrique Utilisation des [AWS Lambda fonctions de](https://docs.aws.amazon.com//toolkit-for-vscode/latest/userguide/remote-lambda.html) ce guide de l'utilisateur. Les sections suivantes décrivent comment déplacer votre flux de travail de la console Lambda vers VS Code. *Pour des informations détaillées sur le déplacement de vos fonctions Lambda de la console Lambda vers VS Code, y compris comment commencer à utiliser la console Lambda, consultez la rubrique Développement de [fonctions Lambda localement avec](https://docs.aws.amazon.com/lambda/latest/dg/foundation-iac-local-development.html) VS Code dans le Guide du développeur.AWS Lambda *

## Déplacement de la console au développement local
<a name="w2aac17c43c13b7"></a>

Pour ouvrir une fonction Lambda depuis la console Lambda dans VS Code, procédez comme suit :

1. Dans votre navigateur Web, ouvrez la console [Lambda](https://console.aws.amazon.com/lambda).

1. Depuis la console Lambda, choisissez la fonction que vous souhaitez ouvrir dans VS Code.

1. Dans la vue des fonctions, accédez à l'onglet **Source du code**.

1. Dans l'onglet **Source du code**, choisissez **Ouvrir dans VS Code**.

## Utilisation de votre fonction Lambda dans VS Code
<a name="w2aac17c43c13b9"></a>

Lorsque votre fonction Lambda s'ouvre dans VS Code via la console Lambda : 
+ VS Code se lance automatiquement sur votre machine locale.
+ Votre fonction Lambda s'ouvre en tant qu'espace de travail VS Code.
+ Votre Lambda `handler file` s'ouvre dans l'éditeur VS Code.
**Note**  
Si aucun fichier n'est correctement configuré `handler file` dans l'espace de travail, aucun fichier ne s'ouvre dans l'éditeur VS Code.

L'ouverture de votre fonction Lambda dans VS Code via la console Lambda vous permet d'accéder à toutes les fonctionnalités existantes du Toolkit AWS Lambda, y compris la possibilité de modifier le code de fonction avec une prise en charge complète du langage, les tests locaux, le débogage à distance, le support au déploiement et la gestion des dépendances. Pour plus d'informations sur les fonctionnalités Lambda prises en charge dans le AWS Toolkit, consultez la table des matières des [AWS Lambda](https://docs.aws.amazon.com//toolkit-for-vscode/latest/userguide/building-lambda.html)services dans ce guide de l'utilisateur.

# AWS Lambda avec LocalStack support
<a name="lambda-localstack"></a>

Créez, testez et déboguez vos applications sans serveur avec le LocalStack support du. AWS Toolkit for Visual Studio Code LocalStack est un émulateur AWS Cloud qui permet de tester localement des applications sans serveur.

Pour plus d'informations à ce sujet AWS Lambda, consultez le *guide du [AWS Lambda](https://docs.aws.amazon.com//lambda/latest/dg/welcome.html)développeur*. Pour en savoir plus LocalStack, visitez leur site Web [LocalStack](https://www.localstack.cloud/).

## Conditions préalables
<a name="prereq"></a>

 Les conditions suivantes sont requises pour travailler avec LocalStack VS Code. 

**Note**  
La LocalStack CLI est installée pendant le processus de configuration, mais si vous préférez une version différente de la LocalStack CLI, la version minimale requise est *4.8.0*.
+ Un compte d'application LocalStack Web est requis pour accéder à toutes les fonctionnalités disponibles pour les LocalStack niveaux gratuit et payant. LocalStack l'édition communautaire est disponible sans compte.
+ Docker doit être utilisé LocalStack dans VS Code. Pour plus d'informations sur les LocalStack exigences relatives à Docker, consultez la rubrique [Images LocalStack Docker](https://docs.localstack.cloud/aws/capabilities/config/docker-images/) dans la LocalStack documentation.
+ **Recommandé :** le AWS Command Line Interface (AWS CLI) vous aide à utiliser les services dans votre environnement cloud simulé.

## Installation LocalStack
<a name="install"></a>

 Pour installer des versions à plusieurs niveaux LocalStack gratuites et payantes, procédez comme suit. 

**Note**  
Pour obtenir des instructions sur LocalStack la configuration de l'édition communautaire, consultez le contenu de la *LocalStackcommunauté* dans la LocalStack section *Configuration* de cette rubrique.

1. À partir du AWS kit d'outils, développez l'explorateur **APPLICATION BUILDER**.

1. Cliquez sur le bouton **Ouvrir la procédure** pas à pas pour ouvrir l'onglet « **Commencer à créer votre application** » dans l'éditeur VS Code.

1. Dans la procédure pas à pas, choisissez **Installer LocalStack** pour démarrer le processus LocalStack d'installation dans VS Code.

## Con LocalStackfiguration
<a name="setup"></a>

Après avoir installé l' LocalStack extension pour VS Code, vous pouvez voir l'un des indicateurs suivants lorsque l'installation est nécessaire :
+ Dans la barre d'état VS Code, située par défaut dans le coin inférieur gauche de l'IDE, le LocalStack statut est rouge.
+ VS Code vous invite à le configurer. LocalStack

Il existe deux types d'installation et de configuration pour LocalStack, selon la version que LocalStack vous utilisez. Les sections à onglets suivantes décrivent chaque processus de LocalStack configuration.

**Note**  
LocalStack des jetons d'authentification sont requis pour les versions gratuites et payantes de LocalStack. Pour obtenir des informations spécifiques sur LocalStack les tarifs, consultez leur guide de tarification [Choisissez votre plan](https://www.localstack.cloud/pricing).

### LocalStack niveaux gratuits et payants
<a name="free-paid"></a>

Il existe deux méthodes de configuration LocalStack.
+ À partir de l'invite ** LocalStack de configuration de VS Code pour démarrer**, cliquez sur le bouton **Configuration**.
+ Dans la barre d'état de VS Code, choisissez l'icône d' LocalStack état pour ouvrir l'invite ** LocalStack de configuration pour démarrer**, puis cliquez sur le bouton **Configuration**.

Au cours de la configuration, le système suit les étapes suivantes :

1. Installe la LocalStack CLI.

1. Vérifie si tu as un LocalStack compte.

1. Si vous avez un LocalStack compte, le système vous guide tout au long du processus d'authentification dans votre navigateur Web par défaut. De même, si vous n'avez pas de LocalStack compte, le système vous guide tout au long de la configuration du compte avant le processus d'authentification.

Une fois la configuration terminée, le LocalStack statut LocalStack est mis à jour dans la barre d'état de VS Code.

**Note**  
Si vous n'avez pas créé AWS de profil pour LocalStack, un nouveau profil est automatiquement créé pour vous dans le cadre du processus de LocalStack configuration.

### LocalStack Communauté
<a name="community"></a>

L'édition Community de LocalStack est gratuite et ne nécessite pas de création de compte. Elle fonctionne à partir d'une image Docker qui ne nécessite pas de licence. Pour plus de détails sur l'édition LocalStack communautaire, consultez la documentation sur les [images LocalStack communautaires](https://docs.localstack.cloud/references/docker-images/). Les sections suivantes décrivent les prérequis et la configuration de base requise pour fonctionner avec l'édition LocalStack communautaire dans VS Code.

**Lancement d'une nouvelle instance**

 Pour lancer une nouvelle instance de LocalStack Community, procédez comme suit. 

**Note**  
L'exemple suivant démarre une instance de conteneur LocalStack sur le port 4566. Si vous spécifiez des valeurs de port différentes, vous devez mettre à jour la valeur de port spécifiée dans la procédure située dans la section *Configuration du kit d' AWS outils AWS CLI et du kit* d'outils.

1. Depuis VS Code, ouvrez le terminal VS Code en appuyant sur**ctrl \$1 `(backtick)**.

1. Entrez ce qui suit dans le terminal.

   **Mac :**

   ```
   docker run -d --name localstack_main \
   >> -p 4566:4566 \
   >> -v /var/run/docker.sock:/var/run/docker.sock \
   >> localstack/localstack
   ```

   **Windows:**

   ```
   docker run -d --name localstack_main `
   >> -p 4566:4566 `
   >> -v /var/run/docker.sock:/var/run/docker.sock `
   >> localstack/localstack
   ```

1. Le terminal est mis à jour avec l'état de votre instance Docker une fois le processus terminé.

Cette instance conteneurisée de vous LocalStack donne accès aux AWS services que vous avez spécifiés lors du processus de téléchargement.

**Configuration de la CLI pour LocalStack et Docker.**

 Pour configurer le AWS kit d'outils AWS CLI et l'utiliser LocalStack dans Docker, configurez un nouveau profil en effectuant les étapes suivantes : 

1. Depuis VS Code, ouvrez le terminal VS Code en appuyant sur**ctrl \$1 `(backtick)**.

1. Entrez ce qui suit dans le terminal.

   ```
   ~/.aws/credentials
   [localstack]
   aws_access_key_id = test
   aws_secret_access_key = test
   ~/.aws/config
   [profile localstack]
   region = us-east-1
   output = json
   endpoint_url = http://localhost:4566 [default localstack endpoint]
   ```

1. Le AWS Toolkit détecte votre LocalStack profil et met à jour le menu d'état de la connexion.

Après la configuration, le choix de votre LocalStack profil AWS dans la section profil de la barre d'état rend vos LocalStack ressources visibles dans l' AWS explorateur. De plus, vous pouvez consulter vos LocalStack journaux dans l'onglet **Sortie** du terminal VS Code.

## Commencer LocalStack dans VS Code
<a name="w2aac17c43c17c13"></a>

Vous pouvez commencer à LocalStack utiliser l'une des méthodes suivantes :

**À LocalStack partir de la barre d'état du code VS**

1. Dans VS Code, accédez à la barre d'état, puis cliquez sur le LocalStack bouton **Démarrer** pour lancer LocalStack.

1. La barre d'état du code VS est mise à jour lorsqu'elle LocalStack a été lancée avec succès.

**À LocalStack partir de la **palette de commandes** VS Code**

1. Dans VS Code, ouvrez la **palette de commandes** en appuyant sur **Cmd \$1 Shift \$1 P** (Mac) ou **Control \$1 Shift \$1 P** (Windows).

1. Dans la **palette de commandes**, entrez **Start LocalStack** dans la barre de recherche et choisissez-la dans la liste lorsqu'elle apparaît dans les résultats.

1. La barre d'état du code VS est mise à jour lorsqu'elle LocalStack a été lancée avec succès.

**À LocalStack partir du terminal VS Code**

1. Depuis VS Code, ouvrez le terminal VS Code en appuyant sur**ctrl \$1 `(backtick)**.

1. À partir du terminal VS Code, entrez la commande **localstack start** CLI.

1. La barre d'état du code VS est mise à jour lorsqu'elle LocalStack a été lancée avec succès.

## Création d'un exemple d'application sans serveur
<a name="serverless"></a>

 Pour commencer à travailler avec LocalStack VS Code, vous avez besoin d'un exemple d'application sans serveur. Si vous avez déjà une application existante dans votre AWS compte, vous pouvez la déployer localement en utilisant LocalStack ou vous pouvez créer une nouvelle application avec AWS Serverless Land.

Pour plus d'informations sur la création d'une application avec Serverless Land dans le AWS kit d'outils, consultez la rubrique [Utilisation de AWS Serverless Land](https://docs.aws.amazon.com//toolkit-for-vscode/latest/userguide/serverlessland-overview.html) dans ce guide de l'utilisateur. Pour des informations détaillées sur Serverless Land, consultez la page d'accueil principale de l'application Web [Serverless Land](https://serverlessland.com/).

## Test et débogage des fonctions Lambda avec LocalStack
<a name="test-debug"></a>

Le test et le débogage de vos fonctions Lambda dans LocalStack l'extension VS Code sont similaires à l'utilisation de vos fonctions déployées dans le cloud. AWS La principale différence est que votre instance AWS Toolkit doit être authentifiée avec votre LocalStack compte pour déployer et déboguer vos fonctions. LocalStack

**Note**  
Les fonctionnalités de test et de débogage décrites dans cette section ne sont pas disponibles pour l'édition LocalStack communautaire.  
Pour travailler avec LocalStack VS Code, connectez-vous à votre LocalStack profil dans le AWS Toolkit. Lorsque votre LocalStack profil est actif, la barre d'état de VS Code affiche **AWS: profile:localstack (point de terminaison personnalisé)** avec une coche.

Pour obtenir des informations détaillées sur l'utilisation de vos fonctions Lambda dans le AWS kit d'outils, consultez la rubrique [Utilisation des AWS Lambda fonctions](https://docs.aws.amazon.com//toolkit-for-vscode/latest/userguide/remote-lambda.html) de ce guide de l'utilisateur.

# AWS Lambda débogage à distance
<a name="lambda-remote-debug"></a>

 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
<a name="w2aac17c43c19b7"></a>

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
<a name="w2aac17c43c19b9"></a>

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

Les environnements d'exécution suivants sont pris en charge par le débogage à distance Lambda.
+ Python (Amazon Linux 2023)
+ Java
+ Typescript/JavaScript/Node.js (Amazon Linux 2023)

**Note**  
Les instances gérées par Lambda et les types de fonctions d'image OCI ne sont pas pris en charge par le débogage à distance Lambda.

### Conditions préalables
<a name="w2aac17c43c19b9b5"></a>

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](https://docs.aws.amazon.com//toolkit-for-vscode/latest/userguide/setting-up.html) 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](https://docs.aws.amazon.com//lambda/latest/dg/getting-started.html) dans le Guide du développeur. *AWS Lambda*
+ Vous devez disposer de la politique Gestion des identités et des accès AWS (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](https://docs.aws.amazon.com//lambda/latest/dg/security-iam-awsmanpol.html) dans le Guide du *AWS Lambda*dé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:OpenTunnel",
          "iot:RotateTunnelAccessToken",
          "iot:ListTunnels"
        ],
        "Resource": "*"
      }
    ]
  }
  ```

## Accès au débogage à distance Lambda
<a name="w2aac17c43c19c11"></a>

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

1. Depuis VS Code, ouvrez l'extension AWS Toolkit.

1. À partir de la AWS boîte à outils, développez l' AWS explorateur.

1. Depuis l'explorateur, développez le nœud **Lambda**.

1. 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.**

1. Depuis VS Code, ouvrez l'extension AWS Toolkit.

1. Dans le AWS Toolkit, développez l'explorateur du générateur d'applications.

1. À partir de l'explorateur, développez le `AWS SAM` projet qui contient le projet Lambda que vous souhaitez déboguer.

1. Développez la `Lambda` fonction déployée que vous souhaitez déboguer.

1. 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
<a name="w2aac17c43c19c13"></a>

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
<a name="w2aac17c43c19c13b7"></a>

Avant de commencer, configurez votre session de débogage en suivant la procédure suivante.

1. Ouvrez le menu de **configuration de Remote Invoke** en exécutant la procédure *Accès au débogage à distance Lambda depuis l' AWS explorateur* ou Accès au *débogage à distance Lambda depuis l'explorateur Application Builder, présentée dans la* section précédente.

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

1. 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 VS Code.

1. 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
<a name="w2aac17c43c19c13b9"></a>

Définissez les points d'arrêt et commencez le débogage en suivant la procédure suivante.

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

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

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

1. **Lors d'une pause, utilisez le volet **RUN AND DEBUG** pour afficher vos **VARIABLES**, **CALL STACK** et BREAKPOINTS.**

### Mettre à jour et tester votre fonction
<a name="w2aac17c43c19c13c11"></a>

Pour modifier votre code et tester les modifications dans le cadre d'un déploiement rapide, procédez comme suit.

1. Lorsque votre session de débogage est active, apportez des modifications `handler file` dans l'éditeur VS Code.

1. Enregistrez vos modifications (**Command\$1S on macOS**,**Ctrl\$1S on Windows**)

1. 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é.

1. 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
<a name="w2aac17c43c19c13c13"></a>

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.

### Débogage de fonctions TypeScript Lambda avec des cartes sources
<a name="typescript-source-maps"></a>

Les sections suivantes décrivent comment déboguer vos fonctions TypeScript Lambda à l'aide de cartes sources.

#### Conditions préalables
<a name="w2aac17c43c19c13c15b5"></a>

Pour déboguer vos fonctions TypeScript Lambda, les conditions préalables suivantes doivent être remplies.
+ Vous TypeScript devez être compilé avec l'option de carte source activée. Pour plus d'informations, consultez la rubrique relative à la prise en [charge des cartes JavaScript sources](https://code.visualstudio.com/docs/typescript/typescript-debugging#_javascript-source-map-support) dans la documentation de VS Code.
+ Les cartes sources intégrées ne sont pas prises en charge. Vous devez utiliser un `.js.map` fichier distinct pour stocker la carte source.

#### Configuration
<a name="w2aac17c43c19c13c15b7"></a>

Pour configurer le débogage à distance Lambda pour les fonctions TypeScript Lambda dans le AWS kit d'outils, procédez comme suit.

1. À partir de la AWS boîte à outils, développez l' AWS explorateur.

1. Depuis l'explorateur, développez le nœud **Lambda**.

1. 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**.

1. Activez le débogage à distance en cochant la case **Débogage à distance**.

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

1. Étendez les paramètres de **configuration supplémentaires du débogage à distance**.

1. Activez le mappage des **sources en cochant la case Carte** des sources.

1. Définissez le champ **Fichiers sortants** sur le répertoire local de votre copie de fonction Lambda.  
**Example**  

   Si `app.js` et `app.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.  
Pour les AWS CDK projets AWS SAM et les projets, le AWS kit d'outils prend en charge la détection automatique des cartes sources. Si le champ **Fichiers sortants** est laissé vide pour ces projets, le kit d'outils tentera automatiquement de détecter l'emplacement de la carte source.

1. Lorsque vous êtes satisfait des paramètres, cliquez sur le bouton **Remote Invoke** pour commencer à déboguer votre TypeScript fonction.

## Résolution des problèmes et cas d'utilisation avancés
<a name="troubleshooting"></a>

Si votre session de débogage échoue, lancez le processus de dépannage en suivant ces étapes.

1. Mettez à jour le AWS kit d'outils avec la dernière version.

1. Actualisez la vue Web en fermant la vue Web de **configuration d'appel à distance** et en la rouvrant.

1. Redémarrez VS Code en le fermant complètement et en le rouvrant.

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

1. Si vous ne parvenez pas à résoudre le problème, soumettez-le à la section [AWS Toolkit for Visual Studio Code GitHubProblèmes](https://github.com/aws/aws-toolkit-vscode/issues).

### Cas d'utilisation avancé : configuration de signature de code
<a name="troubleshooting-code-signing-configuration"></a>

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
<a name="troubleshooting-code-signing-configuration-temp-remove"></a>

Mettez à jour la configuration de signature de code en la définissant`UntrustedArtifactOnDeployment : Warn`, puis réactivez-la une `Enforced` fois le processus de débogage terminé.

Pour plus d'informations, consultez la [UpdateCodeSigningConfig](https://docs.aws.amazon.com//lambda/latest/api/API_UpdateCodeSigningConfig.html)référence dans le Guide de *référence de l'AWS Lambda API*.

#### Utilisation d'une couche de débogage signée
<a name="troubleshooting-code-signing-configuration-signed-debug-layer"></a>

1. À partir du débogage à distance Lambda dans le AWS Toolkit, développez la section de configuration supplémentaire du **débogage à distance**.

1. Dans la section **Configuration supplémentaire du débogage à distance**, copiez l'ARN de votre couche de région à partir du champ **Layer override**.

1. À 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 layer-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](https://docs.aws.amazon.com/cli/latest/reference/lambda/get-layer-version-by-arn.html) dans la référence des *AWS CLI commandes*.

1. 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](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/authoring-codesigning.html) dans le *Guide du AWS Serverless Application Model développeur*.

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

### Cas d'utilisation avancé : fonctions de débogage avec SnapStart ou provisionnement simultané
<a name="troubleshooting-snapstart-provisioned-concurrency"></a>

Pour les fonctions Lambda configurées SnapStart ou configurées avec la simultanéité, la publication d'une nouvelle version prend beaucoup plus de temps. Pour accélérer votre flux de travail de débogage, vous pouvez configurer le débogage à distance Lambda pour mettre à jour uniquement `$LATEST` la version de votre fonction au lieu de publier une nouvelle version.

1. À partir de l'écran de **configuration Remote Invoke**, développez les paramètres de **configuration supplémentaires du débogage à distance**.

1. Désélectionnez l'option **Publier la version**.

1. Le AWS Toolkit ne mettra désormais à jour que la `$LATEST` version de votre fonction et ne procédera au débogage qu'en l'utilisant.

**Note**  
Comme effet secondaire du débogage avec la `$LATEST` version, vous devez éviter tout autre trafic susceptible d'invoquer votre `$LATEST` version afin de garantir un environnement de débogage non perturbé.

### Régions prises en charge
<a name="troubleshooting-regions"></a>

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
<a name="troubleshooting-storage-limit"></a>

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](https://docs.aws.amazon.com//lambda/latest/dg/troubleshooting-deployment.html#troubleshooting-deployment-InvalidParameterValueException1) 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 au moment de l'exécution.

### Résolution des problèmes de débogage Java
<a name="troubleshooting-java-debugging"></a>

Pour déboguer une fonction Lambda Java, vous devez installer localement la même version de Java qui correspond à la version d'exécution de votre fonction Lambda.

Par exemple, lors du débogage d'une fonction Java 25, Java 25 doit être installé dans l'environnement local dans lequel le AWS Toolkit est exécuté. Si vous tentez de déboguer une fonction Java 25 avec Java 21 ou une version antérieure installée localement, le débogage à distance ne pourra pas s'arrêter aux points d'arrêt que vous avez définis.

Assurez-vous que votre version locale de Java correspond à la version d'exécution de votre fonction Lambda avant de démarrer une session de débogage.

### Dépassement du quota de tunneling sécurisé pour l'IoT
<a name="troubleshooting-tunnel-quota"></a>

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 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](https://aws.amazon.com/contact-us/). *Pour obtenir des informations détaillées sur le tunneling AWS IoT sécurisé, consultez la rubrique relative au [tunneling AWS IoT sécurisé](https://docs.aws.amazon.com/iot/latest/developerguide/secure-tunneling.html) dans le Guide du développeur.AWS IoT *