只读文件系统:“ data.json”:aws lambda函数中的IOError

时间:2019-03-09 12:24:02

标签: json amazon-web-services elasticsearch amazon-s3 lambda

我正在尝试从S3存储桶中存储的PDF中读取数据,将其转换为文本,然后将这些文本转储到json文件中。

最后,我想将这个json文件上传到弹性搜索中以进行索引。

为此,我在下面编写了代码段:

with open('data.json','w') as f:
        json.dump(doc,f)
        dataj=json.load(f)
        doc_data=dataj[:]

doc是我使用pdfminer提取的文本。 在执行此代码时,我遇到了错误。

[Errno 30] Read-only file system: 'data.json': IOError
Traceback (most recent call last):
File "/var/task/lambda_function.py", line 56, in lambda_handler
raise e
IOError: [Errno 30] Read-only file system: 'data.json'.

请有人帮助我在这里找到我在做错什么。

1 个答案:

答案 0 :(得分:1)

您正在尝试在不允许的位置写入文件。

Lambda当前仅支持将文件写入/ tmp目录。

with open('/tmp/data.json','w') as f:
        json.dump(doc,f)
        dataj=json.load(f)
        doc_data=dataj[:]