java—从lambda函数内部的s3存储桶中检索文件需要花费太长时间

xoefb8l8  于 2021-06-30  发布在  Java
关注(0)|答案(0)|浏览(248)

所以,我正在aws上开发一个lambda函数,需要从awss3中检索一些rpgle文件。
该函数是用java编写的,在Java8上运行。
问题是,在冷启动期间检索一个简单文件大约需要1.7秒。冷启动后,lambda只需40-50ms即可执行,但这种差异是一个大问题。
我研究过冷启动,我知道他们应该需要更长的时间,但不可能接近整个秒的领域,特别是像我这样的基本lambda。
帮你回答我的问题:
s3 bucket和lambda位于同一区域(eu-west-1)
文件大小为1.2 kb
我试过使用awssdkv1和v2,没有什么大的区别
我对lambdafunctionhandler的实现如下:

public class LambdaFunctionHandler implements RequestHandler<Object, String> {

    @Override
    public String handleRequest(Object input, Context context) {
        context.getLogger().log("Input: " + input);

        Region region = Region.EU_WEST_1;
        S3Client s3 = S3Client.builder()
                .region(region)
                .build();

        GetObjectRequest getObjectRequest = GetObjectRequest.builder()
                .bucket("my-bucket")
                .key("rpg/TEST.rpgle")
                .build();

        int length = s3.getObject(getObjectRequest).toString().length();

        return "file length: " + length;
    }
}

以下是一次冷启动的结果:

这正常吗?我不敢相信用于图像处理的lambda或任何从s3读/写的lambda都需要一秒钟才能执行,我一定是做错了什么。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题