为什么仅对于某些部署目标,我会收到错误“未压缩的代码大小大于允许的最大大小 272629760”?

问题描述 投票:0回答:1

作为 AWS CodeBuild 操作中 AWS CodePipeline 的一部分,我将使用无服务器框架创建的资源部署到“UAT”(用户验收测试)阶段。 该管道在自己的工具AWS帐户中运行,首先将跨帐户部署到单独的“UAT”帐户中,然后将跨帐户部署到单独的“生产”帐户中。

首次部署到“UAT”成功完成,而后续部署到“生产”失败并出现错误...

Serverless Error ----------------------------------------
 
  An error occurred: <some name>LambdaFunction - Resource handler returned message: "Code uncompressed size is greater than max allowed size of 272629760. (Service: Lambda, Status Code: 400, Request ID: <some request id>, Extended Request ID: null)" (RequestToken: <some request token>, HandlerErrorCode: InvalidRequest).
 
  Get Support --------------------------------------------
     Docs:          docs.serverless.com
     Bugs:          github.com/serverless/serverless/issues
     Issues:        forum.serverless.com
 
Your Environment Information ---------------------------
     Operating System:          linux
     Node Version:              14.17.2
     Framework Version:         2.68.0 (local)
     Plugin Version:            5.5.1
     SDK Version:               4.3.0
     Components Version:        3.18.1

当我引入私有 Lambda 层的用法后,这种情况就开始发生了。所有文件的总大小似乎远小于允许的最大大小。

这个问题与实际错误无关(已经存在一个类似的问题)。 我很想知道为什么行为不一致,随部署目标的不同而变化。因为 Lambda 函数包大小的限制(包括 Lambda 层的使用)对于所有环境应该是相同的。

aws-lambda aws-cloudformation serverless-framework aws-codepipeline aws-lambda-layers
1个回答
0
投票

这是一个奇怪的问题,我在迁移到 Lambda 层时也遇到过。

要解决此问题,作为解决方法,

  • 在 serverless.yml 文件中注释 lambda 层配置并部署它
  • 取消 serverless.yml 文件中 lambda 层配置的注释并部署它

这个步骤可能看起来很奇怪,但它对我有用

© www.soinside.com 2019 - 2024. All rights reserved.