java - IntelliJ IDEA Config 在默认 'helloworld' 应用程序中找不到 AWS Lambda 处理程序

标签 java intellij-idea aws-lambda aws-sam-cli aws-toolkit

为默认的 IntelliJ IDEA Java helloworld 应用程序(在创建新的 AWS Lambda 项目时创建)设置调试配置时,显示以下响应:

Error: Cannot find handler 'helloworld.App::handleRequest' in project."

为了解决这个问题,我尝试在 template.yaml 中编辑“Handler”元素以包含文件路径,但没有成功。

Resources:
  HelloWorldFunction:
    Type: AWS::Serverless::Function
    Properties:
      CodeUri: HelloWorldFunction
      Handler: helloworld.App::handleRequest

我注意到 Python AWS Lambda helloworld 项目(在 PyCharm 对应项中)要求我更改根项目文件夹(允许找到处理程序),但是,我似乎无法通过 IntelliJ 中的 Java 对应项实现此目的。

默认的项目文件结构如下:

bash
├── README.mdH
├── HelloWorldFunction 
│   ├── pom.xml    
│   └── src
│       ├── main
│       │   └── java
│       │       └── helloworld
│       │           ├── App.java
│       │           └── GatewayResponse.java  
│       └── test  
│           └── java
│               └── helloworld
│                   └── AppTest.java
└── template.yaml

template.yaml 文件的相关部分包含:

Resources:
  HelloWorldFunction:
    Type: AWS::Serverless::Function
    Properties:
      CodeUri: HelloWorldFunction
      Handler: helloworld.App::handleRequest
      Runtime: java8
      Events:
        HelloWorld:
          Type: Api
          Properties:
            Path: /hello
            Method: get

App.java 文件包含类

public class App implements RequestHandler<Object, Object> {
    ...
}

我希望调试配置指向正确的处理程序(为“helloworld.App::handleRequest”),这样我就可以在我的本地机器上运行该项目。

最佳答案

在项目文件上,右键单击 HelloWorldFunction,然后找到 Mark directory as 并选择 Source Root。那应该可以解决您的问题。

enter image description here

关于java - IntelliJ IDEA Config 在默认 'helloworld' 应用程序中找不到 AWS Lambda 处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55577012/

相关文章:

amazon-web-services - 如何设置我的 HostedZone 以便它委托(delegate)给另一个 AWS 账户中的父 DNS 记录?

java - 跨平台开发建议

Java从不同方法获取文本字段值

java - this.getClass().getResource ("".getFile() 在使用 IntelliJ/Jetty 8.1.14 运行项目时返回开头为 "file:"的路径

android - 将 AS 项目迁移到 IDEA 时,无法将 com.android.build.gradle.internal.model.ApiVersionImpl 转换为 java.lang.Integer

python - AWS Lambda - scrapy 库不工作(无法导入名称 certificate_transparency)

java - J2EE 7 Rest 客户端中的属性而不是值

java - 如何使用 SlidingMenu 库

java - 如何在 IntelliJ 中使用 JCurses?

python - 如何使用 chalice 打印完整的http请求?