AWS Developer Tools Blog
Introducing launch configurations support for SAM debugging in the AWS Toolkit for VS Code
The AWS Toolkit for Visual Studio Code implements a new SAM debugging experience based on VS Code launch configurations. This new experience replaces the old Run Locally | Debug Locally experience. To try the SAM debugging experience for VS Code, install the AWS Toolkit from the VS Code Marketplace. The new experience embraces VS Code’s standard debugger experience, from configuration, to running and debugging, and stepping through code.
The AWS Toolkit connects VS Code to the SAM CLI. Users can define a config in VS Code, launch it, and the AWS Toolkit will invoke SAM CLI to build the serverless project, deploy the code to a local Docker instance, invoke the Lambda in Docker, and connect VS Code to the Docker process, allowing the user to step-through their Lambda code in VS Code.
What’s New
The new SAM debug experience for the AWS Toolkit allows you to use VS Code’s standard launch configuration interface to run and debug Lambda handlers locally. Besides providing a more integrated and idiomatic experience, aws-sam
launch configurations give users more flexibility to configure launchers for any SAM template or handler.
SAM local Lambda debugging also includes new capabilities that allow the user to:
- specify AWS credentials (the
aws
field of the launch config) - specify SAM CLI options (the
sam
field of the launch config) - debug a Lambda locally without a SAM template.yaml file, by specifying
target: code
in theinvokeTarget
of the launch-config
Usage
The updated AWS Toolkit allows you to run or debug AWS SAM Lambdas locally by running a launch config of type: aws-sam
.
Step 1. Create a launch config for a SAM Lambda using any of the following approaches:
- Visit the
template.yaml
in your SAM project, place the cursor on a lambda resource, and click theAdd Debug Configuration
CodeLens. This will add a pre-populated launch config to yourlaunch.json
. - Alternative: visit the handler source code (
.js
,.cs
, or.py
file) in your SAM project, place the cursor on a lambda handler, and click theAdd Debug Configuration
CodeLens. This will add a pre-populated launch config to yourlaunch.json
. - Alternative: Edit
launch.json
and create a new item by hand (whereprojectRoot
points to a valid directory,lambdaHandler
is the name of the handler, and runtime is a valid runtime (nodejs12.x
,python3.7
,dotnetcore2.1
, …)):
Step 2: Visit the “Run” panel in the VS Code sidebar.
Select the launch config from the Run panel menu. Click the “play” button in the Run panel, or press F5.
Next Steps
In this post we overviewed new improvements in the SAM debugging experience in the AWS Toolkit for VS Code IDE. Install the Toolkit to try these features and check out the user guide to learn more. Another great place to engage with the team is on GitHub. The AWS Toolkit for VS Code is an open source project. Share your feedback and feature request issues on GitHub, or via the built-in feedback tool in the IDE plugin.