Aws lambda 当使用AWS Lambda图层时,我应该选择具有所有依赖项的多层还是单层?
我们在Node.js(v10.x)中有几个AWS lambda,其中一些具有一些“特定的大”依赖项,这些依赖项不是在所有节点中共享的。例如,我们有一个“Authorizer”函数,它依赖于Aws lambda 当使用AWS Lambda图层时,我应该选择具有所有依赖项的多层还是单层?,aws-lambda,aws-lambda-layers,Aws Lambda,Aws Lambda Layers,我们在Node.js(v10.x)中有几个AWS lambda,其中一些具有一些“特定的大”依赖项,这些依赖项不是在所有节点中共享的。例如,我们有一个“Authorizer”函数,它依赖于firebase adminNPM包,这是唯一使用它的Lambda 为了简化维护,目前我们有一个包含所有依赖项的单层。将依赖项拆分到多个层中有什么好处吗?我的假设是,更大的一层会增加“冷启动”时间。然而,相对于图层的大小,该惩罚有多大?我在AWS文档中找不到关于此的任何参考 类似的问题,但语言不同。如果我们对L
firebase admin
NPM包,这是唯一使用它的Lambda
为了简化维护,目前我们有一个包含所有依赖项的单层。将依赖项拆分到多个层中有什么好处吗?我的假设是,更大的一层会增加“冷启动”时间。然而,相对于图层的大小,该惩罚有多大?我在AWS文档中找不到关于此的任何参考
类似的问题,但语言不同。如果我们对Lambda使用多种语言(例如Node和Python),我可以拥有一个包含两种语言依赖关系的Lambda层吗?我想这更容易选择,因为Node.js代码将有效地从不使用Python依赖项。不过,我想读一些AWS推荐的管理层的最佳实践。< P>一个LAMBDA,所有层的解压缩应该小于250 MB,如果你接近这个大小,考虑拆分图层,只使用你需要的。 您可以在一个层中混合不同语言的依赖项,因为它只是可以在Lambda运行时重用的文件。正如您所说,它将增加冷启动,每个使用公共层的函数将独立下载该层。因此,如果您更容易在一个层中维护所有内容,请保持原样,但是,一般来说,加载不打算使用的代码不是一个好的做法 另一方面,每个函数最多只能有5层,因此,通过将公共代码和依赖项拆分为几个小层,您可能很快就会达到这个限制