直接通过代码运行和调试 Lambda 函数 - AWS 适用于 VS Code 的工具包

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

直接通过代码运行和调试 Lambda 函数

测试 AWS SAM 应用程序时,您可以选择仅运行和调试 Lambda 函数,并排除 AWS SAM 模板定义的其他资源。这种方法包括使用该CodeLens功能在源代码中识别您可以直接调用的 Lambda 函数处理程序。

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

语言/运行时 用指标识别 Lambda 函数的标准 CodeLens

C# (dotnetcore 2.1、3.1;。 NET5.0)

该函数具有以下功能:
  • 这是公有类的公有函数。

  • 它有一个或两个参数。如果有两个参数,则第二个参数必须实现 ILambdaContext 接口。

  • 它在 VS Code 工作区文件夹内的父文件夹中具有 *.csproj 文件。

ms-dotnettools.csharp 扩展(或为 C# 提供语言符号的任何扩展)已安装且已启用。

JavaScript/TypeScript (Node.js 12.x、14.x)

该函数具有以下功能:
  • 这是一个导出的函数,最多有三个参数。

  • 它在 VS Code 工作区文件夹内的父文件夹中具有 package.json 文件。

Python(3.7、3.8、3.9、3.10、3.11、3.12)

该函数具有以下功能:
  • 这是一个顶级函数。

  • 它在 VS Code 工作区文件夹内的父文件夹中具有 requirements.txt 文件。

ms-python.python 扩展(或为 Python 提供语言符号的任何扩展)已安装且已启用。

Java(8、8.al2、11)

该函数具有以下功能:
  • 这是公有非抽象类的公有函数。

  • 它有一个、两个或三个参数。

    • 一个参数:参数可以是任意值。

    • 两个参数:参数必须是 java.io.InputStreamjava.io.OutputStream,或者最后一个参数必须是 com.amazonaws.services.lambda.runtime.Context

    • 三个参数:参数必须是 ajava.io.InputStream,a java.io.OutputStream AND 最后一个参数必须是 a com.amazonaws.services.lambda.runtime.Context

  • 它在 VS Code 工作区文件夹内的父文件夹中具有 build.gradle(Gradle)或 pom.xml(Maven)文件。

redhat.java 扩展(或为 Python 提供语言符号的任何扩展)已安装且已启用。无论你使用的是哪个 Java 运行时系统,该扩展都需要 Java 11。

vscjava。 vscode-java-debug已安装并启用扩展(或任何提供 Java 调试器的扩展)。

Go (1.x)

该函数具有以下功能:
  • 这是一个顶级函数。

  • 它需要 0 到 2 个参数。如果有两个参数,则第一个参数必须实现 context.Context

  • 它会返回 0 到 2 个参数。如果有 0 个以上的参数,则最后一个参数必须实现 error

  • 它在 VS Code 工作区文件夹中具有 go.mod 文件。

golang.go 扩展已安装和配置且已启用。

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

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

  2. 在应用程序文件夹(例如 my-sample-app)中,展开函数文件夹(在本例中为 hello-world),然后打开该app.js文件。

  3. 在标识符合条件的 Lambda 函数处理程序的 CodeLens 指标中,选择。Add Debug Configuration

    访问 Lambda 函数处理程序 CodeLens 指标中的 “添加调试配置” 选项。
  4. 命令面板中,选择将运行您的 AWS SAM 应用程序的运行时系统。

  5. 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 函数。

    有关 launch.json 文件中这些以及其他条目的更多信息,请参阅 调试无服务器应用程序的配置选项

  6. 如果您对调试配置感到满意,要开始调试,请选择旁边的绿色播放箭头RUN

    调试会话启动时,DEBUGCONSOLE面板会显示调试输出并显示 Lambda 函数返回的所有值。(调试 AWS SAM 应用程序时,会在 “输出” 面板中选择 AWS Toolkit 作为输出通道。)