Amazon web services AWS CodeBuild解压大小必须小于350198字节

Amazon web services AWS CodeBuild解压大小必须小于350198字节,amazon-web-services,aws-lambda,devops,aws-codebuild,Amazon Web Services,Aws Lambda,Devops,Aws Codebuild,我试图同时在多个lambda中部署和更新代码,但在推送到我的分支并部署CodeBuild时,出现以下错误: 调用时发生错误(InvalidParameterValueException) UpdateFunctionCode操作:解压缩大小必须小于 350198字节 [Container]2021/04/24 00:09:31命令未成功退出aws lambda更新函数代码--函数名my_lambda_03--zip文件 fileb://my_lambda_03.zip 退出状态254[集装箱]2

我试图同时在多个lambda中部署和更新代码,但在推送到我的分支并部署CodeBuild时,出现以下错误:

调用时发生错误(InvalidParameterValueException) UpdateFunctionCode操作:解压缩大小必须小于 350198字节

[Container]2021/04/24 00:09:31命令未成功退出aws lambda更新函数代码--函数名my_lambda_03--zip文件 fileb://my_lambda_03.zip 退出状态254[集装箱]2021/04/24 00:09:31阶段完成:后期生成状态:失败[容器] 2021/04/24 00:09:31阶段上下文状态代码:命令执行错误 消息:执行命令时出错:aws lambda 更新函数代码--函数名my_lambda_03--zip文件 fileb://my_lambda_03.zip. 原因:退出状态254

这是构建规范yml

version: 0.2
phases:
  install:
    runtime-versions:
      python: 3.x
    commands:
      - echo "Installing dependencies..."
  build:
    commands:
      - echo "Zipping all my functions....."
      - cd my_lambda_01/
      - zip -r9 ../my_lambda_01.zip .
      - cd ..
      - cd my_lambda_02/
      - zip -r9 ../my_lambda_02.zip .
      - cd ..
      - cd my_lambda_03/
      - zip -r9 ../my_lambda_03.zip .
      ...
      - cd my_lambda_09/
      - zip -r9 ../my_lambda_09.zip .
      - cd ..      

  post_build:
    commands:
      - echo "Updating all lambda functions"
      - aws lambda update-function-code --function-name my_lambda_01 --zip-file fileb://my_lambda_01.zip
      - aws lambda update-function-code --function-name my_lambda_02 --zip-file fileb://my_lambda_02.zip
      - aws lambda update-function-code --function-name my_lambda_03 --zip-file fileb://my_lambda_03.zip
      ...
      - aws lambda update-function-code --function-name my_lambda_09 --zip-file fileb://my_lambda_09.zip
      - echo "Done"

感谢您的帮助。

错误在于您的一个lambda归档文件太大。350198字节似乎有点低,但似乎不符合广告的限制

AWS限制请求中直接上传的大小,因此最好先尝试上传到S3,然后运行
更新功能code
。这样做应该允许您拥有高达250MB的存档

 - aws s3 cp my_lambda_01.zip s3://my-deployment-bucket/my_lambda_01.zip
 - aws lambda update-function-code --function-name my_lambda_01  --s3-bucket my-deployment-bucket --s3-key my_lambda_01.zip
另一个选择是尝试减少归档大小。您正在尝试使用哪些类型的数据或库?确保lambda归档文件中没有包含无关文件(虚拟环境文件、临时构建文件、测试和测试数据等)。一些东西可以在运行时卸载到S3并加载到内存/磁盘中吗

如果您正在尝试的内容实际上需要非常大,则需要将其打包为docker image。这是几个月前在re:Invent2020上发布的,支持高达10GB的docker图像

参考资料: