Lambda函数可以访问自己的/tmp
目录中的磁盘空间。我的问题是,我在哪里可以直观地查看/tmp
目录?
我正在尝试将文件下载到/tmp
目录中以读取它们,并将一个新文件写入其中。我实际上希望看到我正在使用的文件在执行期间在/tmp
中正确存储。
谢谢
答案 0 :(得分:5)
在lambda执行结束后,您无法“查看”/ tmp目录。
Lambda在分布式架构中工作,在执行后,所有使用的资源(包括存储在/tmp
中的所有文件)都会被处理掉。
因此,如果您想检查文件,可能需要考虑使用EC2或S3。
如果您只是想检查s3下载是否成功,在执行期间,您可以尝试:
import os
os.path.isfile('/tmp/' + filename)
答案 1 :(得分:1)
尝试使用S3存储桶存储文件并从Lambda fubction读取它,您应该确保Lambda角色可以访问S3存储桶。
答案 2 :(得分:0)
如前所述,您可能希望在/tmp
中创建S3 bucket
目录,并在最终清理之前将临时处理文件下载/上传到此/tmp
目录。
您可以执行以下操作(我在此处未显示详细过程):
import boto
s3 = boto3.client("s3")
client.put_object(Bucket=Your_bucket_name,Key=tmp/Your_file_name)
如何从/tmp
下载文件:
s3.download_file(Your_bucket_name, Your_key_name, Your_file_name)
下载文件和处理后,您希望通过以下方式再次将其上传到/tmp
:
s3.upload_file(Your_file_name, Your_bucket_name, Your_key_name)
您可以在/tmp/
Your_key_name
然后,您应该能够轻松地从sample:
列出存储桶for key in bucket.list():
print "{name}\t{size}\t{modified}".format(
name = key.name,
size = key.size,
modified = key.last_modified,
)
确保this boto async package以异步方式保持下载和上传。