【发布时间】:2022-10-16 17:30:58
【问题描述】:
我是 Quarkus lambda 的初学者,当我在寻找如何调试 Quarkus lambda 时,每个人都在展示 REST API 端点,有没有办法使用 lambda 处理程序调试 Quarkus 应用程序?
我知道如何在开发模式下启动应用程序,但我正在努力调用处理程序方法。
【问题讨论】:
标签: aws-lambda quarkus quarkus-native
我是 Quarkus lambda 的初学者,当我在寻找如何调试 Quarkus lambda 时,每个人都在展示 REST API 端点,有没有办法使用 lambda 处理程序调试 Quarkus 应用程序?
我知道如何在开发模式下启动应用程序,但我正在努力调用处理程序方法。
【问题讨论】:
标签: aws-lambda quarkus quarkus-native
您可以使用 SAM CLI 进行本地调试和测试。 Here 是 quarkus 的官方文档。
遵循顺序非常重要。
步骤1:
sam local start-api --template target/sam.jvm.yaml -d 5005
第2步:
使用您最喜欢的 REST 客户端访问您的 API
第三步
在 IDE 中添加远程 JVM 调试配置,设置断点并开始调试。
【讨论】:
您实际上可以只添加一个 Main 类并设置一个通常的运行配置。
import io.quarkus.runtime.annotations.QuarkusMain;
import io.quarkus.runtime.Quarkus;
@QuarkusMain
public class Main {
public static void main(String ... args) {
System.out.println("Running main method");
Quarkus.run(args);
}
}
之后,只需使用 curl 或 Postman 调用端点。 默认情况下,lambda 处理程序在端口 8080 上启动。 您可以通过传递来覆盖它
-Dquarkus.lambda.mock-event-server.dev-port=9999
所以卷曲看起来像:
curl -XGET "localhost:9999/hello"
如果资源类的定义如下所示:
@Path("/hello")
public class GreetingResource {
@GET
@Produces(MediaType.TEXT_PLAIN)
public String hello() {
return "hello jaxrs";
}
}
在 Resource 类中添加断点,并在 Debug 模式下启动 Main 类。这实际上会在断点调试期间暂停。
【讨论】: