Options de configuration pour le débogage d'applications sans serveur - AWS Boîte à outils pour VS Code

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.

Options de configuration pour le débogage d'applications sans serveur

Lorsque vous ouvrez lelaunch.jsonpour modifier les configurations de débogage, vous pouvez utiliser le code VSIntelliSensepour afficher et compléter automatiquement les propriétés valides. Pour déclencher IntelliSense dans l'éditeur, appuyez surCtrl+Barre d'espace.

Utilisation de VS Code IntelliSense pour rechercher et compléter les propriétés de débogage valides.

IntelliSense vous permet de rechercher et de définir des propriétés pour appeler les fonctions Lambda directement ou avecAWS SAMmodèle. Vous pouvez également définir des propriétés pour "lambda" (comment la fonction s'exécute), "sam" (comment la AWS SAM CLI génère l'application) et "aws" (comment les informations de connexion AWS sont fournies).

AWS SAM: appel direct du gestionnaire Lambda a/appel Lambda basé sur un modèle
Propriété Description

type

Spécifie l'extension qui gère la configuration de lancement. Toujours défini sur aws-sam pour utiliser la AWS SAM CLI pour générer et déboguer localement.

name

Spécifie un nom convivial de lecteur qui doit apparaître dans la liste Configuration du lancement de débogage.

request

Spécifie le type de configurationà exécuter par l'extension désignée (aws-sam). Toujours défini sur direct-invoke pour démarrer la fonction Lambda.

invokeTarget

Spécifie le point d'entrée pour l'appel de la ressource.

Pour appeler directement la fonction Lambda, définissez des valeurs pour les champs invokeTarget :

  • target – Défini sur code.

  • lambdaHandler – Nom du gestionnaire de fonction Lambda à appeler.

  • projectRoot— Chemin du fichier d'application contenant le gestionnaire de fonction Lambda.

  • architecture—Architecture de processeur de l'environnement émulé dans lequel s'exécute votre application SAM Lambda locale. Pour certains environnements d'exécution, vous pouvez choisirarm64et non de la valeur par défautx86_64architecture. Pour plus d'informations, consultez Création d'une nouvelle application sans serveur (locale).

Pour invoquer les ressources Lambda avecAWS SAMmodèle, définissez les valeurs suivantesinvokeTargetchamps :

  • target – Défini sur template.

  • templatePath— Chemin versAWS SAMfichier de modèle.

  • logicalId – Nom de la ressource de la fonction AWS::Lambda::Function ou de la fonction AWS::Serverless::Function à appeler. Vous pouvez trouver le nom de la ressource dans le fichier au format YAMLAWS SAMmodèle. Remarque :AWS Toolkitreconnaît implicitement les fonctions définies avecPackageType: Imagedans leAWS SAMmodèle commeBasé sur l'imageFonctions Lambda. Pour plus d'informations, consultez Packages de déploiement M Lambda dans le Guide du développeur AWS Lambda.

Propriétés Lambda ("lambda")
Propriété Description

environmentVariables

Envoyez les paramètres opérationnels à votre fonction Lambda. Par exemple, si vous écrivez dans un compartiment Amazon S3 au lieu de coder en dur le nom du compartiment dans lequel vous écrivez, configurez le nom du compartiment comme variable d'environnement.

Note

Lorsque vous spécifiez des variables d'environnement pour une application sans serveur, vous devez ajouter des configurations à la fois auAWS SAMmodèle (template.yaml) et lelaunch.jsondans le fichier.

Exemple de mise en forme pour une variable d'environnement dans leAWS SAMmodèle :

Resources: HelloWorldFunction: Type: AWS::Serverless::Function Properties: CodeUri: hello-world/ Handler: app.lambdaHandlerN10 Runtime: nodejs10.x Environment: Variables: SAMPLE1: Default Sample 1 Value

Exemple de mise en forme pour une variable d'environnement dans lelaunch.jsondans le fichier:

"environmentVariables": { "SAMPLE1": "My sample 1 value" }

payload

Fournit deux options pour la charge utile d'événement que vous fournissez à votre fonction Lambda en entrée.

  • "json" : paires de clé-valeur au format JSON qui définissent la charge utile d'événement.

  • "path" : chemin du fichier utilisé comme charge utile d'événement.

memoryMB

Spécifie les mégaoctets (Mo) de mémoire fournis pour exécuter une fonction Lambda invoquée.

runtime

Spécifie l'environnement d'exécution utilisé pour la fonction Lambda. Pour plus d'informations, consultez Environnement d'exécution AWS Lambda.

timeoutSec

Définit le temps alloué en secondes, avant l'expiration de la séance de débogage.

pathMappings

Spécifie où se trouve le code local par rapport à l'endroit où il s'exécute dans le conteneur.

Par défaut, le Toolkit for VS Code définitlocalRootà la racine de code de la fonction Lambda dans l'espace de travail local, etremoteRootpour/var/task, qui est le répertoire de travail par défaut pour le code exécuté dans Lambda. Si le répertoire de travail est modifié dans le Dockerfile ou avec leWorkingDirectoryparamètre dansAWS CloudFormationfichier de modèle, au moins unpathMappingdoit être spécifiée afin que le débogueur puisse mapper avec succès les points d'arrêt définis localement avec le code exécuté dans le conteneur Lambda.

Exemple de mise en forme pourpathMappingsdans lelaunch.jsondans le fichier:

"pathMappings": [ { "localRoot": "${workspaceFolder}/sam-app/HelloWorldFunction", "remoteRoot": "/var/task" } ]

Mises en garde :

  • Pour les fonctions Lambda basées sur des images .NET,remoteRootL'entrée doit être le répertoire de compilation.

  • Pour les fonctions Lambda basées sur Node.js, vous ne pouvez spécifier qu'une seule entrée de mappage de chemin.

La Toolkit for VS Code utilise laAWS SAMCLI pour créer et déboguer les applications sans serveur localement. Vous pouvez configurer le comportement des commandes AWS SAM CLI en utilisant les propriétés de la configuration "sam" dans le fichier launch.json.

Propriétés AWS SAM CLI ("sam")
Propriété Description Valeur par défaut

buildArguments

Configure la façon dont la commande sam build génère le code source Lambda. Pour afficher les options de génération, consultez Fénération sam dans le guide du développeur AWS Serverless Application Model.

Chaîne vide

containerBuild

Indique si la fonction doit être générée dans un conteneur Docker de type Lambda.

false

dockerNetwork

Spécifie le nom ou l'ID d'un réseau Docker existant auquel les conteneurs Docker Lambda doivent se connecter, avec le réseau de pont par défaut. Si cela n’est pas spécifié, les conteneurs Lambda se connectent uniquement au réseau Docker de pont par défaut.

Chaîne vide

localArguments

Spécifie des arguments d'appel local supplémentaires.

Chaîne vide

skipNewImageCheck

Indique si la commande doit ignorer l'extraction de la dernière image Docker pour l'exécution de Lambda.

false

template

Personnalise votreAWS SAMmodèle utilisant des paramètres pour entrer les valeurs client. Pour plus d'informations, consultez Paramètres dans le Guide de l'utilisateur AWS CloudFormation.

"parameters":{}

Propriétés de connexion AWS ("aws")
Propriété Description Valeur par défaut

credentials

Sélectionne un profil spécifique (par exemple, profile:default) à partir de votre fichier d'informations d'identification pour obtenir les informations d'identification AWS.

LeAWSinformations d'identification que votrepartagéAWSfichier de configuration ou partagéAWSfichier d'informations d'fournir à la Toolkit for VS Code.

region

Définit la région AWS du service (par exemple us-east-1).

Valeur par défaut de la région AWS associée au profil d'informations d'identification actif.

Exemple : Configuration du lancement du modèle

Voici un exemple de fichier de configuration de lancement pourAWS SAMcible du modèle :

{ "configurations": [ { "type": "aws-sam", "request": "direct-invoke", "name": "my-example:HelloWorldFunction", "invokeTarget": { "target": "template", "templatePath": "template.yaml", "logicalId": "HelloWorldFunction" }, "lambda": { "payload": {}, "environmentVariables": {} } } ] }

Exemple : Configuration de lancement de code

Voici un exemple de fichier de configuration de lancement pour une cible de fonction Lambda :

{ "configurations": [ { "type": "aws-sam", "request": "direct-invoke", "name": "my-example:app.lambda_handler (python3.7)", "invokeTarget": { "target": "code", "projectRoot": "hello_world", "lambdaHandler": "app.lambda_handler" }, "lambda": { "runtime": "python3.7", "payload": {}, "environmentVariables": {} } } ] }