Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Aws lambda 当使用AWS Lambda图层时,我应该选择具有所有依赖项的多层还是单层?_Aws Lambda_Aws Lambda Layers - Fatal编程技术网

Aws lambda 当使用AWS Lambda图层时,我应该选择具有所有依赖项的多层还是单层?

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

我们在Node.js(v10.x)中有几个AWS lambda,其中一些具有一些“特定的大”依赖项,这些依赖项不是在所有节点中共享的。例如,我们有一个“Authorizer”函数,它依赖于
firebase admin
NPM包,这是唯一使用它的Lambda

为了简化维护,目前我们有一个包含所有依赖项的单层。将依赖项拆分到多个层中有什么好处吗?我的假设是,更大的一层会增加“冷启动”时间。然而,相对于图层的大小,该惩罚有多大?我在AWS文档中找不到关于此的任何参考


类似的问题,但语言不同。如果我们对Lambda使用多种语言(例如Node和Python),我可以拥有一个包含两种语言依赖关系的Lambda层吗?我想这更容易选择,因为Node.js代码将有效地从不使用Python依赖项。不过,我想读一些AWS推荐的管理层的最佳实践。

< P>一个LAMBDA,所有层的解压缩应该小于250 MB,如果你接近这个大小,考虑拆分图层,只使用你需要的。 您可以在一个层中混合不同语言的依赖项,因为它只是可以在Lambda运行时重用的文件。正如您所说,它将增加冷启动,每个使用公共层的函数将独立下载该层。因此,如果您更容易在一个层中维护所有内容,请保持原样,但是,一般来说,加载不打算使用的代码不是一个好的做法

另一方面,每个函数最多只能有5层,因此,通过将公共代码和依赖项拆分为几个小层,您可能很快就会达到这个限制