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

2023-11-25

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

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

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


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

当然,lambda 只是一小段代码,因此如果您希望一个 lambda 共享一个 .jar,它可以根据事件有效负载内的值调用不同的函数。

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

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";
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在一个jar中创建多个Lambda函数(Java)是否可行 的相关文章

随机推荐