AWS无服务器| 超出代码存储限制

Ash*_*dam 4 amazon-web-services serverless-framework serverless

我有一个错误代码存储限制,超出了在AWS中部署无服务器应用程序的范围。总大小409 B.

错误消息显示:

发生错误:HelloLambdaFunction-超出代码存储限制。(服务:AWSLambda;状态代码:400;错误代码:CodeStorageExceededException;请求ID:...)

Cor*_*rin 24

专门寻找与无服务器相关的这个问题,我找到了 https://github.com/serverless/serverless/issues/400。这是无服务器框架的一个已知问题。但是,一些有进取心的人使用能够修剪旧版本的插件创建了解决问题的方法:https : //github.com/claygregory/serverless-prune-plugin。这允许您在不删除整个堆栈的情况下清理旧版本和代码存储。

例如,您可以使用以下命令删除除最后 10 个版本之外的所有版本:

sls prune -n 10
Run Code Online (Sandbox Code Playgroud)

还有更多选项可以按阶段或区域进行限制。更好的是可以将插件集成到部署中以自动删除除 x 版本之外的所有版本。

我在我当前的无服务器项目中使用了这个插件,它兑现了承诺。

  • 这是真实的。如果您的代码存储空间已用完,第一次修剪可能需要一段时间。使用该插件,它会在每次部署时进行修剪,因此只需清理一个版本。所以这只是第一次修剪需要时间。 (3认同)

小智 9

如上所述,每个区域可以上传的所有部署包的总大小:75 GB。所以如果我们设置

默认情况下,框架为每个部署创建函数版本。此行为是可选的,如果您不通过其限定符调用过去的版本,则可以将其关闭。如果您想这样做,您可以将函数调用为 arn:aws:lambda:....:function/myFunc:3 以调用版本 3。

要关闭此功能,请设置提供者级别选项 versionFunctions。

提供者: versionFunctions: false


Joh*_*ein 5

PublishVersion-AWS Lambda中CodeStorageExceededException表示:

您已超出每个帐户的最大总代码大小。

AWS Lambda限制-AWS Lambda

  • 每个区域可以上载的所有部署包的总大小:75 GB
  • Lambda函数部署包的大小(压缩的.zip / .jar文件):50 MB
  • 可以压缩到部署程序包中的代码/依赖项的大小(未压缩的.zip / .jar大小):250 MB
  • 设置的环境变量的总大小:4 KB

  • 我知道 Lambda 的局限性,但我在我的无服务器框架中遇到了这个问题。 (2认同)

Ash*_*dam 5

我正在解决这个问题,sls remove使用sls deploy命令删除云形成堆栈并使用命令部署无服务器项目。这对我有用。

  • 删除堆栈(可能会丢失附加资源中的数据)是危险的,并且对于具有更安全解决方案(例如 sls prune -n​​ 10)的问题来说是一种过度杀伤力。 (8认同)