OSError: [Errno 30] Read-only file system: ~ AWS Lambdaは/tmp/配下のファイルにしか書き込めない
AWS Lambdaでは/tmp配下のファイルにしか書き込めないので、一時ファイルを用意してそこに書き込んでから最後に元のファイルにコピーしようとしたけど、コピーも書き込みだから駄目だった。
エラーが出てから、そりゃそうかと思ったw。
これは、使いづらいなと思ったが、Lambdaとはそもそもインメモリーで処理することを前提とした設計(のはず)だから、永続化したファイルなんてそうそう使うべきではないのだ。
移行のポイントはこういうところだろうね。
tmp_file_path = '/tmp/'+"file.txt" ###Lambdaでは/tmp/配下のファイルにしか書き込めないので、一時ファイルを用意 shutil.copy2(src_file_path, tmp_file_path) excel_workbook.save(filename=tmp_file_path) shutil.copy2(tmp_file_path, src_file_path) ###残念ながら、元のフォルダのファイルにコピーして戻そうとするとここでエラー