![](/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.