Как посмотреть размер хранилища Lambda / TMP? - PullRequest
2 голосов
/ 03 июля 2019

Как можно увидеть используемые размеры хранилища, которое используется функцией AWS Lamdba?

Например, вот так можно проверить, существует ли файл:

import os
os.path.isfile('/tmp/' + filename)

Однако мне нужно знать, когда будет достигнут предел в 512 МБ.

1 Ответ

1 голос
/ 04 июля 2019

Поскольку лямбда-функция просто запускается в контейнере в среде linux, мы можем использовать ОС, чтобы сообщить нам, в общем, сколько места осталось во временной файловой системе.

from subprocess import check_output
out = str(check_output(["df", '-k']))
print(out)
result = re.search(r"(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\%\s+\/tmp", out)
size, used, available, used_pct = (int(g) for g in result.groups())  

print(size, used, available, used_pct)  # 538424 440 526148 1

Вот что здесь происходит. Сначала мы используем функцию subprocess.check_output для запуска команды: df -k, которая отображает строку с информацией об использовании дискового пространства в килобайтах. Вот пример этого вывода лямбда-функции:

Filesystem     1K-blocks    Used Available Use% Mounted on\n/dev/root        6127168 4978732   1132052  82% /\n/dev/vdb         1965904   45296   1904224   3% /dev\n/dev/loop0        538424     440    526148   1% /tmp\n

Вы видите, что в конце строки находится раздел /tmp. Поэтому мы берем выходные данные и ищем их по шаблону регулярных выражений: (\d+)\s+(\d+)\s+(\d+)\s+(\d+)\%\s+\/tmp, который разделяет соответствующие поля на 4 группы, которые мы можем установить для их собственных переменных, которые представляют size: общий размер раздела (в КБ), used: Объем используемого в настоящее время пространства (в КБ), available: объем пространства, все еще доступного в разделе (в КБ), и used_pct: процент используемого пространства раздела.

Это довольно простой способ получить доступное пространство, я бы не стал его использовать, если необходимы точные измерения или для предположения, можно ли записать новый файл на диск. Но если вы просто регистрируете его на выполнение для отладки, все должно быть прекрасно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...