【问题标题】:Single Jar for multiple aws lambda functions developed using JAVA使用 JAVA 开发的多个 aws lambda 函数的单个 Jar
【发布时间】:2020-08-17 13:49:05
【问题描述】:
我想为一些 lambda 函数制作一个 jar 文件。我看过许多博客和文章,其中使用不同的 handleRequest 方法作为事件。
这将如何映射到 aws lambda 函数,因为 pakage.classname:handleReq() 在 aws 控制台上定义。
对其实施感到困惑。
任何帮助表示赞赏。
【问题讨论】:
标签:
amazon-web-services
amazon-s3
amazon-ec2
aws-lambda
executable-jar
【解决方案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
....
如果您手动执行此操作,则需要在 S3 中上传 jar,然后从 AWS 控制台创建函数以指向此 jar 并记下预期的处理程序。
注意:如果所有功能确实非常密切相关,通常可以这样做,否则最好将它们拆分在单独的 jar 中。