【问题标题】:How to debug quarkus lambda locally如何在本地调试 quarkus lambda
【发布时间】:2022-10-16 17:30:58
【问题描述】:

我是 Quarkus lambda 的初学者,当我在寻找如何调试 Quarkus lambda 时,每个人都在展示 REST API 端点,有没有办法使用 lambda 处理程序调试 Quarkus 应用程序?

我知道如何在开发模式下启动应用程序,但我正在努力调用处理程序方法。

【问题讨论】:

    标签: aws-lambda quarkus quarkus-native


    【解决方案1】:

    您可以使用 SAM CLI 进行本地调试和测试。 Here 是 quarkus 的官方文档。

    遵循顺序非常重要。

    步骤1:

    sam local start-api --template target/sam.jvm.yaml -d 5005

    第2步:

    使用您最喜欢的 REST 客户端访问您的 API

    第三步

    在 IDE 中添加远程 JVM 调试配置,设置断点并开始调试。

    【讨论】:

      【解决方案2】:

      您实际上可以只添加一个 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 类。这实际上会在断点调试期间暂停。

      【讨论】:

        猜你喜欢
        • 2021-07-12
        • 1970-01-01
        • 1970-01-01
        • 2023-03-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-02-26
        相关资源
        最近更新 更多