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

时间:2018-08-07 08:45:37

标签: amazon-web-services serverless-framework serverless

我遇到错误超出代码存储限制。在AWS中部署无服务器应用程序。总大小409 B。

错误消息显示:

  

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

5 个答案:

答案 0 :(得分:4)

PublishVersion - AWS Lambda中,CodeStorageExceededException的意思是:

  

您已经超出了每个帐户的最大代码总数。

来自AWS Lambda Limits - AWS Lambda

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

答案 1 :(得分:2)

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

答案 2 :(得分:2)

Requesting an AWS Lambda function and layer storage quota increase并在aws cloudformation continue-update-rollback之后调用the request is approved应该纠正由于UPDATE_ROLLBACK_FAILED而卡在CodeStorageExceededException中的堆栈

答案 3 :(得分:0)

我专门针对与无服务器有关的这个问题,发现 https://github.com/serverless/serverless/issues/400。这是无服务器框架的已知问题。但是,一些进取心的人使用能够修剪旧版本的插件创建了该问题的解决方案: https://github.com/claygregory/serverless-prune-plugin。这使您可以清理旧版本和代码存储,而无需删除整个堆栈。

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

sls prune -n 10

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

我在当前的无服务器项目中使用了此插件,并且按承诺交付了它。

答案 4 :(得分:0)

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

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

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

  

提供者:versionFunctions:false