Первым шагом было бы выяснить, что именно он занимает столько места. Запустите zappa package
и проверьте полученный ZIP-файл. Добавьте все, что не нужно, в список exclude
в вашем zappa_settings
. Обратите внимание, что эта функциональность несколько ограничена в том, что она может исключить; см. в этой статье как добавить параметр regex_excludes
, который может удалить больше файлов с помощью сопоставления регулярных выражений.
Самым большим, вероятно, будет stati c assets. Обслуживайте их с S3, а не через сервер Lambda Django. Пакет django -s3-storage очень полезен. Установите его и настройте в своем settings.py
примерно так:
STATICFILES_STORAGE = 'django_s3_storage.storage.StaticS3Storage'
AWS_S3_BUCKET_NAME_STATIC = os.environ['STATIC_BUCKET']
AWS_S3_CUSTOM_DOMAIN = os.environ.get('AWS_S3_CUSTOM_DOMAIN', f'{AWS_S3_BUCKET_NAME_STATIC}.s3.amazonaws.com')
STATIC_URL = f'https://{AWS_S3_CUSTOM_DOMAIN}/'
(я использую переменные среды из файла настроек Zappa, чтобы настроить это на каждом этапе, вы можете настроить это как хотите. )
Затем после развертывания в Lambda запустите другую команду для развертывания ваших файлов c stati:
$ zappa update
$ ./manage.py collectstatic
Убедитесь, что файлы stati c исключены из пакета Lambda, как описано выше. Комбинируя эти методы, вы сможете уменьшить размер упаковки; размер моих развертываний в настоящее время составляет около 25 МБ.