

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 直接通过代码运行和调试 Lambda 函数
<a name="serverless-apps-run-debug-no-template"></a>

测试 AWS SAM 应用程序时，您可以选择仅运行和调试 Lambda 函数，并排除 AWS SAM 模板定义的其他资源。这种方法包括使用该[CodeLens](https://code.visualstudio.com/blogs/2017/02/12/code-lens-roundup)功能在源代码中识别您可以直接调用的 Lambda 函数处理程序。

检测到的 Lambda 处理程序 CodeLens 取决于您用于应用程序的语言和运行时间。


|  语言/运行时 | 用指标识别 Lambda 函数的标准 CodeLens | 
| --- | --- | 
|  C\#（dotnetcore2.1、3.1；.NET 5.0）  | 该函数具有以下功能：[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/toolkit-for-vscode/latest/userguide/serverless-apps-run-debug-no-template.html) [ms-dotnettools.csharp 扩展](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csharp)（或为 C\# 提供语言符号的任何扩展）已安装且已启用。 | 
|  JavaScript/TypeScript (Node.js 12.x、14.x)  |  该函数具有以下功能：[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/toolkit-for-vscode/latest/userguide/serverless-apps-run-debug-no-template.html)  | 
|  Python（3.7、3.8、3.9、3.10、3.11、3.12）  |  该函数具有以下功能：[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/toolkit-for-vscode/latest/userguide/serverless-apps-run-debug-no-template.html) [ms-python.python 扩展](http://marketplace.visualstudio.com/items?itemName=ms-python.python)（或为 Python 提供语言符号的任何扩展）已安装且已启用。 | 
|  Java（8、8.al2、11）  |  该函数具有以下功能：[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/toolkit-for-vscode/latest/userguide/serverless-apps-run-debug-no-template.html) [redhat.java 扩展](https://marketplace.visualstudio.com/items?itemName=redhat.java)（或为 Python 提供语言符号的任何扩展）已安装且已启用。无论你使用的是哪个 Java 运行时系统，该扩展都需要 Java 11。 [vscjava。 vscode-java-debug](https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-debug)已安装并启用扩展（或任何提供 Java 调试器的扩展）。  | 
|  Go (1.x)  |  该函数具有以下功能：[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/toolkit-for-vscode/latest/userguide/serverless-apps-run-debug-no-template.html) [golang.go 扩展](https://marketplace.visualstudio.com/items?itemName=golang.Go)已安装和配置且已启用。 | 

# 直接从应用程序代码运行和调试无服务器应用程序




1. 要在 VS Code 文件资源管理器中查看应用程序文件，请选择**视图**、**资源管理器**。

1. 在应用程序文件夹（例如 *my-sample-app*）中，展开函数文件夹（在本例中为 *hello-world*），然后打开该`app.js`文件。

1. 在标识符合条件的 Lambda 函数处理程序的 CodeLens 指标中，选择。`Add Debug Configuration`  
![访问 Lambda 函数处理程序 CodeLens 指标中的 “添加调试配置” 选项。](http://docs.aws.amazon.com/zh_cn/toolkit-for-vscode/latest/userguide/images/sam-codelens-lambda.png)

1. 在**命令面板**中，选择将运行您的 AWS SAM 应用程序的运行时系统。

1. 在 `launch.json` 文件的编辑器中，编辑或确认以下配置属性的值：
   + `"name"` – 输入一个易于阅读的名称，以显示在 **Run**（运行）视图中的 **Configuration**（配置）下拉字段中。
   + `"target"` – 确保值为 `"code"`，以便直接调用 Lambda 函数处理程序。
   + `"lambdaHandler"` – 输入代码中方法的名称，Lambda 可使用该方法来调用您的函数。例如，对于中的应用程序 JavaScript，默认值为`app.lambdaHandler`。
   + `"projectRoot"` – 输入包含 Lambda 函数的应用程序文件的路径。
   + `"runtime"` – 输入或确认 Lambda 执行环境的有效运行时，例如 `"nodejs.12x"`。
   + `"payload"` – 选择以下选项之一以定义要作为输入提供给 Lambda 函数的事件负载：
     + `"json"`：JSON 格式的键值对，用于定义事件负载。
     + `"path"`：用作事件负载的文件路径。

     在下面的示例中，`"json"` 选项定义了负载。  
![配置 launch.json 文件以直接调用 Lambda 函数。](http://docs.aws.amazon.com/zh_cn/toolkit-for-vscode/latest/userguide/images/direct_invoke_config_updated_with_payload_field.png)

   有关 `launch.json` 文件中这些以及其他条目的更多信息，请参阅 [调试无服务器应用程序的配置选项](serverless-apps-run-debug-config-ref.md)。

1. 

   如果您对调试配置满意，请选择**运行** 旁边的绿色播放箭头以启动调试。

   当调试会话启动时，**调试控制台**面板会显示调试输出，并显示 Lambda 函数返回的任何值。（调试 AWS SAM 应用程序时，会在 “输出” 面板中选择 **AWS Toolkit** 作为****输出****通道。）