

除了Java,AWS Lambda SnapStart现在扩展支持Python、.NET,通过缓存运行环境快照,大幅缩短启动时间至低于1秒,特别适用于即时分析、API调用与机器学习应用场景
AWS宣布Lambda SnapStart技术开始支持Python与.NET函数,以大幅提升启动性能。该功能可通过缓存和重用函数初始化后的内存和磁盘状态,将函数启动时间从数秒缩短至低于1秒,并允许开发者在多数情况下不需要修改代码,即可从SnapStart功能获益。
AWS Lambda最早在2022年的时候推出SnapStart技术,最初仅支持Java,适用于Spring Boot、Quarkus和Micronaut等框架,用于解决JVM启动过程的性能瓶颈。而这次的更新扩展至Python与.NET,不仅进一步降低初始化延迟,也提升了这两种语言在Lambda平台的运行效率和稳定性。
根据AWS发布的数据,Python函数在加载大型相依套件或是进行机器学习模型推理时,通常需要耗费数秒钟的初始化时间,加载较大型的机器学习模型甚至可能长达数十秒,而SnapStart则能有效缩短这段等待时间。对于.NET来说,技术重点则在于解决JIT(Just-in-Time)编译带来的变动延迟,让函数性能表现更加一致。
SnapStart的运作原理在于首次函数启动时,将初始化完成的运行环境进行快照,将其加密并缓存,后续启动时直接重用快照内容,而不需要再次运行初始化过程。这种机制特别适合需要频繁启动的函数或是低延迟应用场景,诸如即时数据分析、高频率API调用,甚至是进行即时机器学习推理。
此外,AWS也针对Python和.NET SnapStart提供Runtime Hooks功能,让开发者在快照创建前后运行特定逻辑,进一步强化应用的灵活性和控制性。开发者可以在快照创建前进行数据初始化,或在快照恢复后更新动态配置,使得应用程序能够更好地使用外部资源。
AWS Lambda SnapStart已经在多个AWS区域支持Python与.NET函数,包括美国东部、欧洲和亚太地区。AWS提醒用户,激活SnapStart的函数会产生额外的缓存和还原成本,可以定期清理未使用的版本降低相关费用。