Python / AWS Lambda函数:如何查看/ tmp存储?

时间:2017-05-03 19:18:37

标签: python python-2.7 amazon-web-services aws-lambda

Lambda函数可以访问自己的/tmp目录中的磁盘空间。我的问题是,我在哪里可以直观地查看/tmp目录?

我正在尝试将文件下载到/tmp目录中以读取它们,并将一个新文件写入其中。我实际上希望看到我正在使用的文件在执行期间在/tmp中正确存储。

谢谢

3 个答案:

答案 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以异步方式保持下载和上传。