Ошибка ОС: [Ошибка 28] На устройстве не осталось свободного места — AWS Lambda Zappa

#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 решила проблему. Удалены дополнительные библиотеки, которые не требовались для уменьшения пространства.