AWS更新Lambda添加初始优化以加速函数启动

AWS更新其无服务器运算服务Lambda,加入SnapStart新功能来加快初始阶段,进而加速整体函数的执行速度,AWS提到,SnapStart可让Spring Boot、Quarkus和Micronaut等Java框架启动速度提高至10倍。

AWS解释,函数执行环境生命周期有三个主要的阶段,分别为初始(Init)、调用(Invoke)和结束(Shutdown),而初始则是启动Runtime并且执行函数静态程序代码的阶段,在许多情况下,这些操作会在数毫秒内完成,并且不会有任何明显的时间延长。

但在部分情况,函数初始可能会需要相当长的时间,像是Spring Boot、Quarkus或Micronaut等Java程序语言框架,就会花费较长的时间初始化Runtime,整个Lambda函数初始化可能长达10秒,执行诸如相依项目注入和函数程序代码编译等操作,另外,静态程序代码也可能需要下载机器学习模型,预计算一些参照资料,或是和其AWS服务创建网络连接。

而Lambda SnapStart能够针对Lambda函数启动优化程序,该程序会启动函数并且在初始阶段运行,截取内存和磁盘状态成为不可篡改的加密快照,并且将其缓存以供重复使用。之后当函数再次被调用时,状态将会从缓存中检索并用于填充环境。AWS提到,由于优化让创建新的执行环境不需要经过初始阶段,因此函数调用时间将更快更可预测。