在为默认 IntelliJ IDEA Java helloworld 应用程序(在创建新的 AWS Lambda 项目时创建)设置调试配置时,将显示以下响应:
错误:在项目中找不到处理程序 'helloworld.App::handleRequest'。”
为了解决这个问题,我尝试在 template.yaml 中编辑“处理程序”元素以包含文件路径,但没有成功。
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 文件包含类
public class App implements RequestHandler<Object, Object> {
...
}
我希望调试配置指向正确的处理程序(是“helloworld.App::handleRequest”),这样我就可以在本地机器上运行项目。