所以,我正在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都需要一秒钟才能执行,我一定是做错了什么。
暂无答案!
目前还没有任何答案,快来回答吧!