作为 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 层的使用)对于所有环境应该是相同的。
这是一个奇怪的问题,我在迁移到 Lambda 层时也遇到过。
要解决此问题,作为解决方法,
这个步骤可能看起来很奇怪,但它对我有用