#python-3.x #aws-lambda #zappa
#python-3.x #aws-lambda #заппа
Вопрос:
Я развернул приложение на AWS lambda с использованием Zappa. Я получаю ошибку в хвосте zappa — ошибка: на устройстве не осталось свободного места. Размер файла большой, поэтому я также использую S3. Ниже приведены мои настройки zappa.
{"dev": {
"app_function": "app.app",
"profile_name": "default",
"aws_region": "------",
"project_name": "----",
"runtime": "python3.6",
"s3_bucket": "------",
"timeout_seconds": 300,
"slim_handler": true
}
}
ниже приведена трассировка стека:
[Errno 28] No space left on device: OSError
Traceback (most recent call last):
File "/var/task/handler.py", line 609, in lambda_handler
return LambdaHandler.lambda_handler(event, context)
File "/var/task/handler.py", line 240, in lambda_handler
handler = cls()
File "/var/task/handler.py", line 97, in __init__
self.load_remote_project_archive(project_archive_path)
File "/var/task/handler.py", line 169, in load_remote_project_archive
t.extractall(project_folder)
File "/var/lang/lib/python3.6/tarfile.py", line 2012, in extractall
numeric_owner=numeric_owner)
File "/var/lang/lib/python3.6/tarfile.py", line 2054, in extract
numeric_owner=numeric_owner)
File "/var/lang/lib/python3.6/tarfile.py", line 2124, in _extract_member
self.makefile(tarinfo, targetpath)
File "/var/lang/lib/python3.6/tarfile.py", line 2173, in makefile
copyfileobj(source, target, tarinfo.size, ReadError, bufsize)
File "/var/lang/lib/python3.6/tarfile.py", line 252, in copyfileobj
dst.write(buf)
OSError: [Errno 28] No space left on device
Есть предложения?
Комментарии:
1. Lambda, похоже, не является правильным решением для вас. Вы смотрели на свой собственный EC2 или другие технологии AWS?
2. Пока нет, но нужно знать, почему возникает эта проблема и как я могу с ней справиться? Я использую S3 для решения проблемы с пространством.
3. Похоже, вы загружаете что-то удаленно и пытаетесь отключить его (предположение, поскольку кода нет). Вы сейчас пытаетесь выполнить потоковую передачу на S3? Мы просто догадываемся без какого-либо кода.
4. он загружает архивированную версию кода в s3, а затем разархивирует ее. Код наверняка есть.
5. Распакованная версия кода должна быть меньше 250 МБ. Насколько велик распакованный пакет развертывания вашего кода?
Ответ №1:
Это была проблема с памятью. Очистка кода и virtualenv решила проблему. Удалены дополнительные библиотеки, которые не требовались для уменьшения пространства.