IntelliJ + AWS Toolkit + приложение без сервера: «Должно быть в состоянии найти обработчик в проекте для развертывания в Lambda» - PullRequest
1 голос
/ 08 октября 2019

Я создал новый бессерверный проект в IntelliJ, используя шаблонное приложение в стиле HelloWorld. Это приложение мне удалось создать, развернуть и запустить удаленно в моей учетной записи AWS. Мне даже удалось интегрировать его с API-шлюзом, чтобы сделать его доступным через Интернет.

Поскольку проект настроен, в нем есть 1 функция Lambda под названием HelloWorldFunction. Его обработчик называется «helloworld.App::handleRequest», и я вижу конфигурацию для этого в файле template.yaml.

Теперь я хочу создать еще одну функцию Lambda в том же проекте приложения. Итак, в IntelliJ я выполняю следующие шаги:

  • AWS Explorer> Lambda
  • Щелкните правой кнопкой мыши Lambda
  • Нажмите «Создать новую AWS Lambda ...»
  • введите имя функции (например, MyNewLambdaFunction)
  • введите среду выполнения (Java 8), S3-контейнер и роль IAM (все в порядке)
  • , затем мне нужновведите имя «Обработчик», и именно здесь начинается моя проблема

Я пробовал разные имена здесь, такие как «MyNewHandler» или «helloworld.App::handleRequest» (ясно этоне будет работать, потому что он уже используется функцией HelloWorldFunction), "helloworld.App2 :: handleRequest", .... и т. д.

Каждый раз, когда я пытаюсь использовать другое имя или способ определения обработчика,Я получаю это сообщение об ошибке:

Должен быть в состоянии найти обработчик в проекте для развертывания в Lambda

Вопрос:

Нужно ли сначала настроить новую функцию Lambda в файле template.yaml или что мне нужновесь обработчик, чтобы он работал?

Я уверен, что это просто ошибка noob, но я гуглил это и не нашел никого, кто столкнулся с той же проблемой. Я также читал об AWS на обработчиках, но он описывает это только на концептуальном уровне, а не на практике, где есть несколько лямбд.

спасибо за любую помощь!

Andy

1 Ответ

0 голосов
/ 19 октября 2019

У меня были те же проблемы с использованием pyCharm для Python.

Я смог решить эту проблему с помощью <file name without extension>.<function name>, поэтому мой файл - app.py, а функция - lambda_handler, поэтому мой обработчик былapp.hello_world

Следует отметить, что это то же самое, что вы видите в поле «Обработчик» при использовании страницы веб-управления AWS.

...