Развертывание Python AWS Lambda - пакет Zappa без требований Zappa
Я хочу упаковать и развернуть простой проект в AWS Lambda, используя Zappa, но без дополнительных требований 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 намного больше, чем нужно:
Я знаю, что для этого конкретного случая Zappa не нужна, но в реальном проекте я использую некоторые библиотеки, для которых требуются https://github.com/Miserlou/lambda-packages, и использование Zappa - самый простой способ их установки.,
Как мне сгенерировать лямбда-пакет python без этих накладных расходов?
0 ответов
Во-первых, вы можете использовать slim_handler, который позволяет загружать файлы большего размера, чем 50M. Во-вторых, как уже упоминалось @bddb, вы можете исключить некоторые файлы, такие как.pyc, zip и т. Д., С помощью свойства exclude. Пожалуйста, найдите более подробную информацию здесь:
https://github.com/Miserlou/Zappa
Вот пример того, как ваш 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*".
}
}