AWS Lambda无法在写入模式下打开文件

时间:2019-04-09 11:31:56

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

我正在尝试使用csv writer在写入模式下打开一个csv文件,它在本地可以工作,但是当我尝试在aws lambda中执行相同操作时,它说是只读文件系统。我确定我将以写二进制模式打开。

下面是参考代码。

f = csv.writer(open('abc.csv','wb+'))
                f.writerow(['botName','botVersion','utteranceString','count','distinctUsers','firstUtteredDate','lastUtteredDate','status'])

以下是我得到的错误:

[Errno 30] Read-only file system: 'abc.csv' this is exception

编辑1 通过在文件路径中添加/ tmp /可以修复上述错误,但是我无法将在/ tmp中创建的csv文件移动到s3存储桶 我使用了以下代码

s3_u.meta.client.upload_file( '/tmp/'+output_filename, 'codepipelinedev',k)

这正在s3存储桶中生成空文件。如果我使用不存在的文件进行测试,则会引发错误。 当我在本地尝试相同的操作时,将使用文件中的预期数据创建csv文件。但是在传输这些文件时,我在我们的S3存储桶中得到了空文件。

对此表示感谢 预先感谢

1 个答案:

答案 0 :(得分:0)

AWS Lambda函数仅对Lambda运行时环境中的/tmp文件夹具有写访问权限。如果您需要修改该文件,则需要先将其复制到/tmp,然后在此处进行修改。