【问题标题】:Aws lambda functions multiple jars vs single jarAws lambda 函数多个 jar 与单个 jar
【发布时间】:2018-12-06 19:14:02
【问题描述】:

假设您有一个 reserve a dining table 的功能分解为多个 lambda 函数,例如:

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

现在你会将以上所有的 lambdas 放在 1 个 jar 中还是每个 lambda 有一个 jar?

【问题讨论】:

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


    【解决方案1】:

    可能所有的功能都非常小。如果是这样的话,到头来不会有什么不同。但是如果它们很大或者函数有不同的依赖关系,就会有所不同,但是......

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

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

    长话短说:每个函数一个罐子!

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-13
      • 2018-08-18
      • 1970-01-01
      • 2016-01-29
      • 2023-03-09
      • 1970-01-01
      相关资源
      最近更新 更多