首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Maven部署包并上传到AWS-Lambda

Maven部署包并上传到AWS-Lambda
EN

Stack Overflow用户
提问于 2016-03-20 19:17:09
回答 3查看 6.3K关注 0票数 2

我在将maven部署包上传到亚马逊s3时遇到了问题。

在Eclipse中,我能够成功地生成.jar文件,但是我在上传到服务器时遇到了问题。

下面是我的Java代码:

代码语言:javascript
复制
package main.java.mavantestproj;

import java.util.Map;

import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient;
import com.amazonaws.services.lambda.runtime.Context;

public class LambdaFunctionHandler {


    public String handleRequest(Map<String,Object> input, Context context) {
        context.getLogger().log("Input: " + input);

        AmazonDynamoDBClient client = new AmazonDynamoDBClient(new ProfileCredentialsProvider("mytest"));

        client.setRegion(com.amazonaws.regions.Region.getRegion(Regions.US_WEST_2));

        client.describeTable("ProductCatalog");
        // TODO: implement your handler
        return null;
    }

}

在目标文件夹中,我有两个jar文件。即lambda-java-example-1.0-SNAPSHOT.jar & original-lambda-java-example-1.0-SNAPSHOT.jar

第一个jar是35MB,第二个是4KB。我不知道上传哪个文件到S3来运行我的lambda函数。

EN

回答 3

Stack Overflow用户

发布于 2016-03-29 06:36:25

您肯定需要大的"uber-jar“,所以您的依赖类将被包括在内,但是有一种替代方法可以使用Maven组装插件而不是Shade插件为AWS-Lambda打包东西。您最终得到了一个.zip格式的AWS lambda部署包,而不是一个.jar文件。它看起来更像是一个JEE文件,所有原始的.jar依赖项都保持不变,你还可以包含其他东西,比如在运行.war的文件系统中解压的属性文件(这可能更容易在你的代码中找到和加载)。如果你对细节感兴趣,这里有一篇关于它的博客文章:http://whirlysworld.blogspot.com/2016/03/aws-lambda-java-deployment-maven-build.html还有,以这种方式打包一个Lambda函数应用程序,可以更容易地偷看压缩文件,找出包含了哪些依赖jars,然后识别出你可能能够排除的那些。

这仍然不能让Maven处理包到AWS的实际部署(创建或更新)。部署和捕获部署信息(ARN、API-gateway app-id-url等)似乎是下一步亚马逊没有提供非常明确的答案或解决方案的事情。

票数 5
EN

Stack Overflow用户

发布于 2016-03-20 23:10:58

正在生成的更大的JAR文件包括所有的库依赖项。这是您希望上传到S3以供AWS Lambda使用的文件,因为运行这些依赖项是必需的。

如果你想让这个文件更小,你可以确保只包含你需要的库,并删除任何不必要的库。一种常见的方法是,AWS SDK只包含您需要调用的特定服务的库,比如DynamoDB,而不是包含整个AWS SDK。

票数 0
EN

Stack Overflow用户

发布于 2017-11-19 09:17:55

看起来使用shade插件构建的独立jar文件就足够了,就像这个亚马逊网络服务documentation

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36113034

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档