Tencent Serverless Hours 线上分享会回放请戳: https://cloud.tencent.com/edu/learning/live-2437
在使用云函数进行项目开发的时候,当函数数量变多后,经常碰到的一个问题,就是对这些函数的依赖库的管理问题。由于云函数在创建或更新时,需要将函数的业务代码,和依赖库一同打包上传,因此在本地开发时,也经常是将依赖库和业务代码放置在一个文件夹下。
在这种情况下,每个云函数的代码目录下均有一套依赖库代码,而这其中有很多在若干个函数中都是重复的,不但占用了大量的空间,而且管理麻烦,在某些依赖库需要进行升级时,要进入到每个函数项目中去检查依赖关系和升级操作。而另一方面,这些依赖库通常不会有大的变动,但是却需要在每次函数进行更新时,都要和业务代码一同打包上传,导致实际的代码更新可能就一两行,但是需要生成一个十几兆甚至几十兆的包去上传,在网络环境不好的情况下还需要忍受缓慢的上传速度。
腾讯云的 SCF 云函数近期推出的层功能,就是为了这类不经常变动的依赖库或静态文件而准备的产品功能。通过使用层功能来存储及管理依赖库,并在使用时按需与函数进行绑定,就可以实现依赖库的多函数共享,仅需上传一份,就可以在多个要使用到的函数中绑定并引用;通过与云函数绑定的使用方式,也就意味着不需要在云函数的业务代码中再附上相应的依赖库了,可以将业务代码和依赖库分开进行管理和部署,降低云函数每次上传时需要提交的包大小,加快上传更新的速度。