Intellij idea IntelliJ+;AWS工具包&x2B;无服务器应用程序:“;必须能够在项目中找到处理程序,以便部署到Lambda;
我使用HelloWorld样式的模板应用程序在IntelliJ中创建了一个新的无服务器项目。 我在AWS帐户中成功构建、部署并远程运行了该应用程序。我甚至设法将其与API网关集成,使其可以通过internet访问 设置项目时,它有一个名为HelloWorldFunction的Lambda函数。它的处理程序名为“helloworld.App::handleRequest”,我可以在template.yaml文件中看到它的配置 现在我想在同一个应用程序项目中创建另一个Lambda函数。因此,在IntelliJ中,我遵循以下步骤:Intellij idea IntelliJ+;AWS工具包&x2B;无服务器应用程序:“;必须能够在项目中找到处理程序,以便部署到Lambda;,intellij-idea,aws-lambda,aws-serverless,Intellij Idea,Aws Lambda,Aws Serverless,我使用HelloWorld样式的模板应用程序在IntelliJ中创建了一个新的无服务器项目。 我在AWS帐户中成功构建、部署并远程运行了该应用程序。我甚至设法将其与API网关集成,使其可以通过internet访问 设置项目时,它有一个名为HelloWorldFunction的Lambda函数。它的处理程序名为“helloworld.App::handleRequest”,我可以在template.yaml文件中看到它的配置 现在我想在同一个应用程序项目中创建另一个Lambda函数。因此,在Int
- AWS浏览器>Lambda
- 右键单击Lambda
- 单击“创建新的AWS Lambda…”
- 输入函数名(例如MyNewLambdaFunction)
- 输入运行时(Java8)、S3存储桶和IAM角色(一切正常)
- 然后我需要输入“处理程序”的名称,这就是我的问题开始的地方
Andy我在使用pyCharm for Python时遇到了同样的问题 我能够通过使用
解决它,因此我的文件是app.py
,函数是lambda\u handler
,因此我的处理程序是app.hello\u world
需要注意的是,这与您在使用AWS web管理页面时在“处理程序”字段中看到的相同。我的理解是,您需要首先将
app2
类添加到同一个包中:
单击包名称→ 新的→ Java类→ 类型app2
导航到App2
类的实现,并单击排水沟中的lambda图标。您会注意到,下拉列表中添加了“创建新AWS Lambda”:
选择该字段时,您将看到“Handler:”字段已正确预填充:
我的理解是,每个处理程序必须放在一个单独的类中,并且处理程序的名称
handleRequest
是标准的,由框架提供
感谢您的详细指导-我将尝试一下。目前,我刚刚将所有对函数的调用打包到一个处理程序中,但仍然需要将其分离在玩了几天项目结构之后,我有了一种直觉,即每个lambda都应该位于一个单独的Java模块中,因为每个lambda都是独立编译、打包、发送到S3存储桶并部署的。如果我在同一个类上保留多个lambda处理程序,那么每个lambda部署将为所有其他lambda编译代码。它将减慢部署速度,并使用比S3中所需更多的空间。。。应用程序中有两个单独的帮助工具提示,都没有回答这个基本问题,谢谢!