![](/img/trans.png)
[英]NoClassDefFoundError when running AWS lambda function with libraries
[英]Running a Java function as an AWS Lambda function
我创建了以下 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 函数
我选择了 Java 8 运行时,上传了我的 jar,所以现在坚持下一步该做什么。 我创建了一个 Cloudwatch 由启动 EC2 实例触发的事件,并将此事件的目标添加为我的 Lambda 函数。 那么接下来呢? 特别是消息“此函数包含外部库。上传新文件将覆盖这些库。” 让我困惑。 我只想让 lambda 函数在 cloudwatch 事件发生时执行。
另外,当我最终让它运行时,我在哪里可以看到 System.out.println 命令的输出?
您需要告诉 Lambda 您的处理程序函数的名称是什么。 在 Java 中,您可以通过以下两种方式之一来表明这一点:
com.mycompany.HelloWorld::handleRequest
com.mycompany.HelloWorld
目前尚不清楚 Lambda 如何推断 #2 中的处理程序方法的名称(例如,如果有两个处理程序方法)。 它可能只是在寻找handleRequest
或者它可能以某种方式使用反射。
您的 Lambda 函数输出的任何内容都将发送到 CloudWatch Logs。 您可以从 Lambda 函数的监控选项卡到达那里(或者您可以简单地打开 CloudWatch Logs 控制台并从那里导航)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.