AWS Lambda功能多个Jar与单个Jar

时间:2018-06-27 19:52:54

标签: aws-lambda serverless-architecture aws-serverless

让我们说您有一个reserve a dining table功能可以分解为多个lambda函数,例如:

1. RestaurantsLambda - get list of restaurants etc
2. BookingLambda - takes payment, confirms booking etc
3. EmailLambda - sending confirmation emails.

现在您将上述所有lambda放入1罐还是每个lambda装一罐?

1 个答案:

答案 0 :(得分:0)

可能所有功能都很小。如果是这样,最终将不会有任何改变。但是,如果它们很大或者函数具有不同的依赖关系,它将有所作为,但是...

最佳实践是仅将lambda保留函数所需的代码。这包括依赖项和库,当然还有主要代码。最佳实践基于以下事实:对于lambda执行,必须在第一次调用时下载代码(过一会儿,该代码将被关闭,下一次调用将被视为再次执行)。在Java中,还有一个额外的痛苦是在代码执行之前发生的类加载过程。

因此:理解此响应的最佳方法是:代码库更大,加载函数所需的时间更长,花费的时间也更多。

长话短说:每个功能一个罐子!

要点:在Java中,对于要导入的库必须非常小心。例如,在aws-sdk中,您仅必须导入所需的库,而不是导入整个aws-sdk。这将使您的功能保持苗条,并...再次阅读最后一段...;-)