在一个罐子中创建多个 Lambda 函数 (Java) 是否可行?


我是AWS Lambda

的新手,正在使用AWS Eclipse插件来开发Lambda函数。

问:是否可以对所有不同的 Lambda 函数使用单个.jar。在这个单一的.jar文件中,我可以为不同的 Lambda 函数提供类。

否则,我是否应该为每个 Lambda 函数创建单独的.jar文件,并为每个 Lambda 函数分别上传 .jar。

可以使用

一个.jar,但 lambda 不可能共享一个.jar。您需要上传 jar 文件或提供具有 s3 位置的相同 lambda,该位置可以相同。

当然,lambda 只是一些代码,所以如果你想让一个 lambda 共享一个.jar,它可以根据事件有效负载中的值调用不同的函数。

下面是一个 jar 如何在多个 lambda 中使用的示例:

Lambda #1 处理程序:

example.Hello::myHandler

Lambda #2 处理程序:

example.Hello::mySecondHandler

示例代码:

package example;
import com.amazonaws.services.lambda.runtime.Context; 
import com.amazonaws.services.lambda.runtime.RequestHandler;
public class Hello implements RequestHandler<Integer, String>{
    public String myHandler(int myCount, Context context) {
        return String.valueOf(myCount);
    }
    public String mySecondHandler(int mySum, Context context) {
        return String.valueOf(mySum);
    }
}

下面是一个 lambda 如何基本上有两个不同事件的示例:

package example;
import com.amazonaws.services.lambda.runtime.Context; 
import com.amazonaws.services.lambda.runtime.RequestHandler;
public class Hello implements RequestHandler<String, String>{
    public String myMainHandler(String event_type, Context context) {
      switch (event_type) {
            case "myHandler": return this.myHandler()
            case "mySecondHandler": return this.mySecondHandler()
            default: return "Good Bye";
        }
    }
    public String myHandler() {
        return "Hello";
    }
    public String mySecondHandler() {
        return "World";
    }
}

最新更新