如果我使用AWS API网关和集成类型设置为lambda函数,在lambda函数的Java实现中,是否可以覆盖RequestHandler
(而不是RequestStreamHandler
)?因此,我的lambda函数的输入将是我在Java代码中定义的POJO,并且它的输出将是另一个POJO,并且客户端应该只需要发送该请求POJO的JSON序列化并接收响应POJO的JSON序列化。我尝试过这样做,但无论客户发送什么,我都会收到空的200响应。
不确定这里出了什么问题,有人可以帮忙吗?
答案 0 :(得分:2)
所以我创建了一个示例应用
<强> LambdaFunctionHandler.java 强>
package com.amazonaws.lambda.demo;
import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;
public class LambdaFunctionHandler implements RequestHandler<RequestClass, ResponseClass> {
public ResponseClass handleRequest(RequestClass input, Context context) {
context.getLogger().log("Input: " + input);
// TODO: implement your handler
ResponseClass myVal = new ResponseClass();
myVal.setGreetings("Hello from POJO - " + input.getName() );
return myVal;
}
}
<强> ResponseClass.java 强>
package com.amazonaws.lambda.demo;
public class ResponseClass {
String greetings;
public String getGreetings() {
return greetings;
}
public void setGreetings(String greetings) {
this.greetings = greetings;
}
public ResponseClass(String greetings) {
this.greetings = greetings;
}
public ResponseClass() {
}
}
<强> RequestClass.java 强>
package com.amazonaws.lambda.demo;
public class RequestClass {
String name;
public String getName() {
return name;
}
public void setName(String firstName) {
this.name = firstName;
}
public RequestClass(String name) {
this.name = name;
}
public RequestClass() {
}
}
将相同内容上传到AWS后,我为同一个
创建了一个API网关和相同的测试
正如您所见,POJO适用于Lambda + API网关组合