Python AWS Lambda部署-无需Zappa要求的Zappa软件包

时间:2018-09-27 22:12:39

标签: python aws-lambda zappa

我想使用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是安装它们的最简单方法。

如何在没有此开销的情况下生成python lambda软件包?

1 个答案:

答案 0 :(得分:0)

首先,您可以使用 slim_handler 来上传大于50M的较大文件。第二,正如@bddb已经提到的那样,您可以使用 exclude 属性来隐藏.pyc,zip等文件。请在此处找到更多详细信息:

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*".
    }
}