使用JAVA开发的用于多个AWS Lambda功能的单个Jar

问题描述

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

解决方法

您可以在一个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
   
....

如果您手动执行此操作,则需要在S3中上传jar,然后从AWS控制台创建函数以指向该jar并写下所需的处理程序。

注意:通常,如果所有功能之间确实都非常紧密相关,则可以执行此操作,否则最好将它们拆分到单独的jar中。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...