IntelliJ IDEA 配置无法在默认 'helloworld' 应用程序中找到 AWS Lambda 处理程序

IntelliJ IDEA Config cant find AWS Lambda Handler in Default 'helloworld' Application

为默认 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 文件包含 class

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

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

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