2017-09-04 54 views
2

部署已经开始返回下面的错误,而供应的筹码发生无服务器的部署错误 - 代码存储限制超出了我的无服务器项目的

错误... [拉姆达名称] [GUID] - 代码存储超过限制..

我试过删除zip包,认为有多少上传包可以存储在S3存储桶中的限制,但没有运气。

正如Trent在下面提到的,我已经看过了部署限制,但是使用2.1MB压缩包(8MB未压缩),我看不出有什么限制。

有关可能导致此问题的任何建议。

(我的)解决方案:

我希望能更好地了解潜在的问题,并希望能做到这一点作为最后的手段。但它似乎通过从云信息中删除堆栈并重新部署问题已解决的无服务器项目。

回答

2

http://docs.aws.amazon.com/lambda/latest/dg/limits.html

每个lambda函数被分配有不管存储器分配的特定资源的固定量,并且每个功能被分配与每个功能和每个帐户代码存储固定量。

Lambda表达式有调用的限制,同时也部署限制,这是你的问题是什么。仔细研究这些限制并确定哪一个已被违反。

+1

感谢特伦特哪些。无服务器软件包压缩为2.1MB,未压缩8.1MB。这似乎没有超出任何部署限制。 使用“sls deploy”命令进行部署很好,很小的一行更改为代码,然后重新部署,并突然出现此错误消息。 – Adam

+1

在这种情况下,您的lambdas以前的版本过多,需要将其清除。 –

0

Lambda在每个部署中都创建了一个功能版本,因此频繁部署会导致存储问题。你的解决方案是正确的,但你也可以通过编写一个简单的脚本去除其他未使用的函数版本。

首先,你想获得你的函数

`const params = { 
    FunctionName: 'functionName' 
}; 
lambda.listVersionsByFunction(params, function(err, data) { 
    if (err) console.log(err, err.stack); 
    else  console.log(data); 
});` 

的版本再决定要删除

`const params2 = { 
    FunctionName: 'functionName', 
    Qualifier: '1' //version of your function you want to delete 
}; 
lambda.deleteFunction(params2, function(err, data) { 
    if (err) console.log(err, err.stack); 
    else  console.log(data); 
});` 
相关问题