将Java函数作为AWS Lambda函数运行

时间:2017-10-23 22:55:19

标签: java amazon-web-services aws-lambda

我创建了以下java类

  import com.amazonaws.services.lambda.runtime.RequestHandler;
import com.amazonaws.services.lambda.runtime.Context; 

   public class SayHello implements RequestHandler<Request, Response> {

   public Response handleRequest(Request request, Context context) 
   {
       System.out.println("Running lambda function 123abc");
       return new Response("Lambda says hello");
   }
}

我将它捆绑到一个名为myjar.jar的jar中,并通过我的AWS控制台创建了一个lambda函数

enter image description here

我选择了Java 8运行时,上传了我的jar,所以现在坚持下一步做什么。我创建了一个Cloudwatch enter image description here事件,该事件由启动EC2实例触发,并将此事件的目标添加为我的Lambda函数。接下来呢?特别是消息&#34;该函数包含外部库。上传新文件将覆盖这些库。&#34;困惑我 我只想在cloudwatch事件发生时让lambda函数执行 另外,当我最终运行时,我在哪里可以看到System.out.println命令的输出?

1 个答案:

答案 0 :(得分:0)

您需要告诉Lambda处理函数的名称是什么。在Java中,您可以通过以下两种方式之一来指出:

  1. as package.class :: method ,例如:com.mycompany.HelloWorld::handleRequest
  2. as package.class ,例如:com.mycompany.HelloWorld
  3. 目前尚不清楚Lambda如何推断#2中处理程序方法的名称(例如,如果有两个处理程序方法)。它可能只是在寻找handleRequest,或者它可能以某种方式使用反射。

    Lambda函数输出的任何内容都将发送到CloudWatch Logs。您可以从Lambda函数的Monitoring选项卡到达那里(或者您只需打开CloudWatch Logs控制台并从那里导航)。