Amazon web services 使用AWS SAM部署时如何避免大小限制

Amazon web services 使用AWS SAM部署时如何避免大小限制,amazon-web-services,aws-lambda,aws-cli,aws-sam,aws-sam-cli,Amazon Web Services,Aws Lambda,Aws Cli,Aws Sam,Aws Sam Cli,我将Lambda与nodeJs一起使用。问题在于,由于节点\u模块依赖关系,我很快就会: 达到lambda(3MB)的最大大小,该值仍可在在线代码编辑器(AWS控制台的lambda页面)中编辑 达到使用sam deploy命令可以部署的最大大小 我还注意到在AWS控制台上,为每个lambda函数上传了整个代码库(包括所有函数和层),这可能会增加上传的大小,并计入限制 如何避免这些限制?库依赖关系可能会随着时间的推移而增长。我试图将所有npm依赖项放在一个单独的文件中,但这没有帮助,因为我仍然

我将Lambda与nodeJs一起使用。问题在于,由于
节点\u模块
依赖关系,我很快就会:

  • 达到lambda(3MB)的最大大小,该值仍可在在线代码编辑器(AWS控制台的lambda页面)中编辑
  • 达到使用
    sam deploy
    命令可以部署的最大大小
我还注意到在AWS控制台上,为每个lambda函数上传了整个代码库(包括所有函数和层),这可能会增加上传的大小,并计入限制


如何避免这些限制?库依赖关系可能会随着时间的推移而增长。我试图将所有npm依赖项放在一个单独的文件中,但这没有帮助,因为我仍然需要从命令行将函数和层上传到一起,我认为它们都被计入两个限制。

SAM部署包大小限制不是5 MB。这是URL字符串的最大长度。@jarmod谢谢。我去掉了。你不应该在imo的任何重要项目中使用Lambda控制台。Lambda包大小限制是硬限制。对于ZIP文件,它们是不同的(更小),您的实际部署限制也将包括任何层。除非Lambda服务提高这些限制,否则您必须找到减少总部署大小的方法。节点在这里显然是一个挑战,因为有一半的互联网被拉入节点单元。您能否识别未使用的软件包或大型、最少使用的软件包?同意@jarmod的观点,即您不应该在控制台编辑器中执行任何有意义的操作。如果您想使用远程编辑器,可以尝试Cloud9(Lambda控制台中最终使用的就是Cloud9)。作为层的替代方案,Lambda支持EFS,您可以在EFS中存储节点_模块,在Lambda中装载EFS卷,并使用装载中的节点_模块。。。本文提供了一些详细信息。在本地开发lambda,测试它们,将它们打包到部署包中(其大小限制为250 MB),然后使用sam进行部署。