Записывать временные файлы из Google Cloud Function

Могу ли я писать в локальную файловую систему контейнера из облачной функции Google? AWS Lambda позволяет записывать в / tmp:

Вопрос: Что делать, если мне нужно временное пространство на диске для моей функции AWS Lambda?
Каждая функция Lambda получает 500 МБ нестабильного дискового пространства в собственном каталоге / tmp.

Есть ли что-то эквивалентное в GCF?


person Trevor Dixon    schedule 10.03.2017    source источник


Ответы (1)


Да, /tmp монтируется в памяти. Из https://cloud.google.com/functions/docs/concepts/exec#file_system:

Файловая система

Единственная записываемая часть файловой системы - это каталог /tmp, который вы можете использовать для хранения временных файлов в экземпляре функции. Это точка монтирования локального диска, известная как том «tmpfs», в которой данные, записанные на том, хранятся в памяти. Обратите внимание, что он будет потреблять ресурсы памяти, выделенные для функции.

person Trevor Dixon    schedule 10.03.2017
comment
Есть ли способ развернуть файлы в этом каталоге tmp, чтобы они могли просто быть там при запуске, вместо того, чтобы сначала загружать их откуда-то еще? - person pete; 01.07.2017
comment
Нет. Но вы можете просто объединить любые файлы в свой zip-файл или, если они слишком большие, прочитать их из облачного хранилища. - person Trevor Dixon; 02.07.2017
comment
Они исчезнут, когда функция будет завершена? У меня одна функция записывает в / tmp, а другая пытается читать из нее, но вторая не находит файл - person sonicblis; 23.09.2017
comment
@sonicblis Каждая функция выполняется в отдельном контейнере и имеет собственное изолированное монтирование / tmp. Даже последующие вызовы одной и той же функции иногда будут выполняться в другом контейнере, поэтому они будут иметь разные монтирования / tmp. Таким образом, вы не можете использовать / tmp для связи между функциями. / tmp может быть полезен, например, для кеширования или хранения промежуточных результатов внешнего процесса. - person Trevor Dixon; 23.09.2017
comment
@ Trevor-dixon Я делаю то же самое, но использую / tmp для создания файла и облачного хранилища, чтобы сохранить его для следующего чтения. - person DaShaun; 19.01.2019
comment
Привет, есть ли способ получить ссылку для загрузки на файл, хранящийся в папке tmp? или, возможно, отправить файл обратно, используя HTTP-ответ в том же вызове? - person Umair M; 28.03.2020
comment
@DaShaun, у тебя есть код для этого? Есть ли ограничение на размер файла tmp, который мы можем записать? Я столкнулся с проблемой, что мой файл написан в облачной функции, но его размер составляет всего 20 байт, тогда как он должен быть 1 мес. - person foufrix; 30.03.2020
comment
@foufrix Я думаю, что это то, что вам нужно: `` const fs = require (fs); const os = require ('os'); const destFileName = '/ tmp / timestamp'; const options = {назначение: destFileName,}; функция writeValToFile (val) {let writeStream = fs.createWriteStream (destFileName); writeStream.write ('' + значение + ''); writeStream.end (); } `` ` - person DaShaun; 12.04.2020
comment
Какое максимальное пространство может быть выделено в папке / tmp в случае выполнения облачной функции gcp? - person PRUDHVI CHOWDHARY NEKKALAPUDI; 08.09.2020
comment
Какое максимальное пространство может быть выделено в папке / tmp в случае выполнения облачной функции gcp? - person PRUDHVI CHOWDHARY NEKKALAPUDI; 08.09.2020
comment
@PRUDHVICHOWDHARYNEKKALAPUDI 500 мб - person cjcurrie; 03.11.2020