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

您所在的位置:网站首页 sam调试 直接通过代码运行和调试 Lambda 函数

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

2024-06-30 18:42| 来源: 网络整理| 查看: 265

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

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

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

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

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

C#(dotnetcore2.1、3.1;.NET 5.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)

该函数具有以下功能:

这是一个顶级函数。

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

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

Java(8、8.al2、11)

该函数具有以下功能:

这是公有非抽象类的公有函数。

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

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

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

三个参数:参数必须是 java.io.InputStream 和 java.io.OutputStream,或者最后一个参数必须是 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 扩展已安装和配置且已启用。

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

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

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

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

命令面板中,选择将运行您的 AWS SAM 应用程序的运行时系统。

在 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 函数返回的任何值。(调试 AWS SAM 应用程序时,AWS Toolkit输出面板中被选择作为输出通道。)



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3