доступ к / tmp или другой временной файловой структуре в бессерверной лямбда-функции - PullRequest
0 голосов
/ 15 мая 2019

Функция AWS Lambda с помощью консоли

В AWS Lambda моя функция сохранит файл из S3 в каталог /tmp следующим образом:

local_filepath = '/tmp/file.txt'

s3.download_file(
  Bucket=bucket,
  Key=key,
  Filename=local_filepath
)

и жизнь была хорошей.

Лямбда-функция AWS с использованием без сервера

Однако использование Serverless - это отдельная история.

При такой же настройке возникает следующая ошибка:

[Errno 2] No such file or directory: '/tmp/processed.txt.7E4850BD'

Так что я бы предположил, что в бессерверной среде выполнения /tmp dir нет.

Я пытался просто сохранить файл в текущем каталоге с local_filepath = 'file.txt', но я получаю ошибку OSError(30, 'Read-only file system').

1 Ответ

3 голосов
/ 15 мая 2019

Попробуйте использовать модуль tempfile, у него есть набор технических средств для извлечения временного каталога для использования:

local_filepath = os.path.join(tempfile.gettempdir(), 'file.txt')
...