Развертывание 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*".
    }
}
Другие вопросы по тегам