【问题标题】:Is it feasible to create multiple Lambda functions (Java) in a jar在一个jar中创建多个Lambda函数(Java)是否可行
【发布时间】:2018-08-18 21:58:17
【问题描述】:

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

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

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

【问题讨论】:

标签: amazon-web-services aws-lambda


【解决方案1】:

可以使用一个 .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";
    }
}

【讨论】:

    猜你喜欢
    • 2018-12-06
    • 1970-01-01
    • 2012-03-13
    • 1970-01-01
    • 1970-01-01
    • 2017-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多