如何查看AWS Lamdba函数使用的存储的已用大小?
例如,像这样,可以检查文件是否存在:
import os
os.path.isfile('/tmp/' + filename)
但是,我需要知道何时达到512 MB的限制。
答案 0 :(得分:1)
由于Lambda函数仅在Linux环境中的容器上运行,因此我们可以使用OS告诉我们临时文件系统上还剩下多少空间。
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
,该命令显示有关以KB为单位的磁盘空间使用情况信息的字符串。这是lambda函数的输出示例:
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
的自己的变量:总分区大小(以KB为单位) ),used
:当前正在使用的空间量(以KB为单位),available
:该分区上仍可用的空间量(以KB为单位)和used_pct
:正在使用的分区空间。
这是获得可用空间的非常简单的方法,如果需要精确的测量或猜测是否可以将新文件写入磁盘,我将不使用此方法。但是,如果您只是在执行时将其记录下来进行调试,那应该就可以了。