aws lambda 无法以写入模式打开文件

Kis*_*han 0 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'])
Run Code Online (Sandbox Code Playgroud)

以下是我收到的错误:

[Errno 30] Read-only file system: 'abc.csv' this is exception
Run Code Online (Sandbox Code Playgroud)

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

s3_u.meta.client.upload_file( '/tmp/'+output_filename, 'codepipelinedev',k)
Run Code Online (Sandbox Code Playgroud)

这会在 s3 存储桶中生成空文件。如果我使用不存在的文件进行测试,它会抛出错误。当我在本地尝试相同的操作时,会使用文件中的预期数据创建 csv 文件。但在传输这些文件时,我在 S3 存储桶中收到空文件。

感谢您的帮助,提前致谢

Mar*_*k B 5

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