IntelliJ IDEA Config не может найти обработчик лямбды AWS в приложении по умолчанию helloworld - PullRequest
5 голосов
/ 08 апреля 2019

При настройке конфигураций отладки для стандартного 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 Ответ

2 голосов
/ 10 апреля 2019

В файлах проекта щелкните правой кнопкой мыши HelloWorldFunction, найдите Mark directory as и выберите Source Root. Это должно исправить ваши проблемы.

enter image description here

...