AWS Lambda
开发人员指南

示例:使用 POJO 进行处理程序输入/输出 (Java)

假定应用程序事件会生成包含名字和姓氏的数据,如下所示:

{ "firstName": "John", "lastName": "Doe" }

在本示例中,处理程序将接收此 JSON 并返回字符串 "Hello John Doe"

public static ResponseClass handleRequest(RequestClass request, Context context){ String greetingString = String.format("Hello %s, %s.", request.firstName, request.lastName); return new ResponseClass(greetingString); }

要使用该处理程序创建 Lambda 函数,必须提供输入和输出类型的实现,如下面的 Java 示例所示。HelloPojo 类定义 handler 方法。

package example; import com.amazonaws.services.lambda.runtime.Context; import com.amazonaws.services.lambda.runtime.RequestHandler; public class HelloPojo implements RequestHandler<RequestClass, ResponseClass>{ public ResponseClass handleRequest(RequestClass request, Context context){ String greetingString = String.format("Hello %s, %s.", request.firstName, request.lastName); return new ResponseClass(greetingString); } }

为了实施输入类型,将以下代码添加到单独的文件中并将其命名为 RequestClass.java。将其放在您的目录结构中 HelloPojo.java 类的旁边:

package example; public class RequestClass { String firstName; String lastName; public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } public RequestClass(String firstName, String lastName) { this.firstName = firstName; this.lastName = lastName; } public RequestClass() { } }

为了实施输出类型,将以下代码添加到单独的文件中并将其命名为 ResponseClass.java。将其放在您的目录结构中 HelloPojo.java 类的旁边:

package example; 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() { } }

注意

必须提供 getset 方法,以便 POJO 使用 AWS Lambda 内置的 JSON 串行器。通常不需要提供无参数的构造函数,但本例提供了其他构造函数,因而需要显式地提供零参数构造函数。

可以将该代码上传为 Lambda 函数,并进行如下测试:

  • 使用上述代码文件创建部署程序包。

  • 将部署程序包上传到 AWS Lambda 并创建 Lambda 函数。可使用控制台或 AWS CLI 完成此操作。

  • 使用控制台或 CLI 手动调用该 Lambda 函数。手动调用 Lambda 函数时,可以使用所提供的示例 JSON 事件数据。例如:

    { "firstName":"John", "lastName":"Doe" }

有关更多信息,请参阅 (可选) 创建用 Java 编写的 Lambda 函数。注意以下不同:

  • 创建部署程序包时,不要忘了 aws-lambda-java-core 库依赖项。

  • 创建 Lambda 函数时,指定 example.HelloPojo::handleRequest (package.class::method) 作为处理程序值。