代码之家  ›  专栏  ›  技术社区  ›  joaoricardo000

Python AWS Lambda deploy-不需要Zappa的Zappa包

  •  4
  • joaoricardo000  · 技术社区  · 6 年前

    我想使用Zappa在AWS Lambda上打包和部署一个简单的项目,但是不需要Zappa需求开销。
    考虑到这个简单的场景:

    lambda_handler.py

    def handle(event, context):
        print('Hello World')  
    

    我有一个 deploy.sh

    #!/usr/bin/env bash
    source venv/bin/activate
    zappa package -o lambda.zip
    aws lambda update-function-code --function-name lambda-example --zip-file fileb://./lambda.zip
    

    这行得通, 最后一个lambda.zip比需要的要大得多: enter image description here

    我知道在这个特定的例子中不需要Zappa,但是在实际的项目中,我使用了一些需要 https://github.com/Miserlou/lambda-packages ,使用Zappa是安装它们的最简单方法。

    0 回复  |  直到 6 年前
        1
  •  1
  •   Rene B.    5 年前

    首先,你可以使用 slim_处理程序 它允许上传大于50米的文件,正如@bddb已经提到的,您可以用 排除 财产。请在此处查找更多详细信息:

    https://github.com/Miserlou/Zappa#package

    zappa_settings.json设置 可能看起来像:

     {
        "dev": {
    ...
            "slim_handler": false, // Useful if project >50M. Set true to just upload a small handler to Lambda and load actual project from S3 at runtime. Default false.
            "exclude": ["*.gz", "*.rar"], // A list of regex patterns to exclude from the archive. To exclude boto3 and botocore (available in an older version on Lambda), add "boto3*" and "botocore*".
        }
    }