使用 JAVA 开发的用于多个 aws lambda 函数的单个 Jar

问题描述 投票:0回答:1

我想为一些 lambda 函数制作一个 jar 文件。我看过很多博客和文章,其中使用不同的handleRequest方法作为事件。 如何将其映射到 aws lambda 函数,如 pakage.classname:handleReq() 在 aws 控制台上定义。 对其实施感到困惑。 如有任何帮助,我们将不胜感激。

amazon-web-services amazon-s3 amazon-ec2 aws-lambda executable-jar
1个回答
1
投票

一个 jar 中可以有多个函数,对于每个函数,整个 jar 都将被上传。

需要为每个函数定义处理程序类。

如果您使用cloudformation,它将看起来像这样:

FirstLambdaFunction:
    Type: AWS::Serverless::Function
    Properties:
      FunctionName: first-function
      Description: "Your first function"
      Handler: com.app.functions.FirstFunction
      Runtime: java11
      CodeUri: ./build/libs/all-functions.jar

SecondLambdaFunction:
    Type: AWS::Serverless::Function
    Properties:
      FunctionName: second-function
      Description: "Your second function"
      Handler: com.functions.SecondFunction
      Runtime: java11
      CodeUri: ./build/libs/all-functions.jar
   
....

如果您手动执行此操作,则需要将 jar 上传到 S3 中,一旦您从 AWS 控制台创建函数即可指出此 jar 并写下预期的处理程序。

注意:通常,如果所有功能确实彼此非常密切相关,则可以这样做,否则最好将它们拆分到单独的 jar 中。

© www.soinside.com 2019 - 2024. All rights reserved.