在jar中创建多个Lambda函数(Java)是否可行 [英] Is it feasible to create multiple Lambda functions (Java) in a jar

查看:74
本文介绍了在jar中创建多个Lambda函数(Java)是否可行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I am new to AWS Lambda and I am using AWS Eclipse plugin to develop Lambda functions.

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

Question: Is it possible to use a single .jar for all different Lambda functions. In this single .jar file can I have classes for different Lambda functions.

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

Otherwise, should I create separate .jar files for each Lambda function and upload the .jars separately for each Lambda functions.

推荐答案

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

It's possible to use one .jar, but it's not possible for lambdas to share one .jar. You will need to upload the jar file or provide the same lambda with the s3 location, the location can be the same.

当然,lambda只是一些代码,因此,如果您希望一个lambda共享一个.jar,它可以基于事件有效负载中的值调用不同的函数.

Of course lambda is just a bit of code, so if you want one lambda to share one .jar, it can call different functions based on a value inside the event payload.

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

Below is an example how one jar could be used in multiple lambdas:

Lambda#1处理程序:

Lambda #1 handler:

example.Hello::myHandler

Lambda#2处理程序:

Lambda #2 handler:

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可以具有本质上两个不同的事件:

Below is an example how one lambda can have essentially two different events:

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";
    }
}

这篇关于在jar中创建多个Lambda函数(Java)是否可行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆