Конфигурация IntelliJ IDEA не может найти лямбда-обработчик AWS в приложении helloworld по умолчанию
При настройке конфигураций отладки для стандартного Java-приложения IntelliJ IDEA Java (созданного при создании нового проекта AWS Lambda) отображается следующий ответ:
Ошибка: не удается найти обработчик helloworld.App::handleRequest'в проекте."
Чтобы исправить это, я попытался отредактировать элемент 'Handler' внутри template.yaml, чтобы включить путь к файлу, хотя успеха не было.
Resources:
HelloWorldFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: HelloWorldFunction
Handler: helloworld.App::handleRequest
Я заметил, что проект Python AWS Lambda helloworld (в рамках аналога PyCharm) потребовал, чтобы я изменил корневую папку проекта (позволяя найти обработчик), однако я не могу добиться этого с помощью аналога Java в IntelliJ.
Структура файла проекта по умолчанию следующая:
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"), чтобы я мог запустить проект на своей локальной машине.
1 ответ
На файлах проекта, щелкните правой кнопкой мыши на HelloWorldFunction
тогда найди Mark directory as
и выбрать Source Root
, Это должно исправить ваши проблемы.